Restringir acesso a xmlrpc.php

2

Sou relativamente novo no Wordpress e notei recentemente que uma enorme quantidade de tráfego atingiu o seguinte:

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

Eu bloqueei o endereço IP, que é uma solução temporária. Existe uma solução permanente para bloquear essas solicitações, especialmente se eu não precisar

    
por brentwpeterson 01.08.2014 / 15:33

3 respostas

4

Existem plugins para isso: por exemplo enlace

Você também pode escrever um filtro você mesmo

add_filter('xmlrpc_enabled', '__return_false');

Você pode simplesmente adicionar este código ao seu tema functions.php (localizado em wp-content / themes / your_theme).

No entanto, é aconselhável criar um tema filho ( enlace ) para que sua modificação não desapareça quando você atualizar o tema .

Alternativamente, você pode criar seu plugin ( enlace ) onde você colocará todos os ajustes do seu WordPress.

Também adiciono o seguinte para uma melhor proteção:

/**
 * 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);
    
por YaFred 01.08.2014 / 15:43
9

Se o seu servidor for um Apache, você pode bloquear o acesso antes que o WordPress seja alcançado com uma linha em seu .htaccess:

Redirect 403 /xmlrpc.php

Você pode adicionar outra linha para manter a resposta curta:

ErrorDocument 403 "no"

Isso enviará uma resposta mínima (dois bytes mais cabeçalhos HTTP) e economizará seus recursos para melhorar o tráfego.

    
por fuxia 01.08.2014 / 19:55
2

Outra maneira é colocar isso no seu arquivo .htaccess:

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