Restrinja el acceso a xmlrpc.php

2

Soy bastante nuevo en Wordpress y recientemente noté una gran cantidad de tráfico que llega a lo siguiente:

162.242.170.222 - - [01/Aug/2014:08:18:54 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:01 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:01 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:02 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:11 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
162.242.170.222 - - [01/Aug/2014:08:19:13 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
162.242.170.222 - - [01/Aug/2014:08:19:18 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861

Bloqueé la dirección IP, que es una solución temporal. ¿Existe una solución permanente para bloquear estas solicitudes, especialmente si no la necesito?

    
pregunta brentwpeterson 01.08.2014 - 15:33

3 respuestas

4

Hay complementos para eso: por ejemplo, enlace

También puedes escribir un filtro tú mismo

add_filter('xmlrpc_enabled', '__return_false');

Simplemente puede agregar este código a su tema functions.php (ubicado en wp-content / themes / your_theme).

Sin embargo, se recomienda crear un tema secundario ( enlace ) para que su modificación no desaparezca cuando actualice el tema. .

Alternativamente, puedes crear tu complemento ( enlace ) donde colocarás todos tus ajustes de WordPress.

También agrego lo siguiente para una mejor protección:

/**
 * Secure WordPress by removing version
 */
remove_action('wp_head', 'wp_generator');


/**
 * Secure WordPress by hiding login errors
 */
function hide_login_errors($errors) { return 'login error'; }
add_filter('login_errors', 'hide_login_errors', 10, 1);
    
respondido por el YaFred 01.08.2014 - 15:43
9

Si su servidor es un Apache, puede bloquear el acceso antes de llegar a WordPress con una sola línea en su .htaccess:

Redirect 403 /xmlrpc.php

Puedes agregar otra línea para que la respuesta sea breve:

ErrorDocument 403 "no"

Eso enviará una respuesta mínima (dos bytes más encabezados HTTP) y guardará tus recursos para un mejor tráfico.

    
respondido por el fuxia 01.08.2014 - 19:55
2

Otra forma es poner esto en tu archivo .htaccess:

<Files "xmlrpc.php">
order allow,deny
deny from all
errordocument 403 /noaccess.html
errordocument 404 /noaccess.html
</Files>
    
respondido por el Hans 09.09.2014 - 12:53

Lea otras preguntas en las etiquetas