Ich bin ziemlich neu in Wordpress und habe kürzlich festgestellt, dass eine große Anzahl von Zugriffen auf Folgendes stößt:
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
Ich habe die IP-Adresse blockiert, was eine temporäre Lösung ist. Gibt es eine dauerhafte Lösung, um diese Anfragen zu blockieren, besonders wenn ich sie nicht brauche?
Dafür gibt es Plugins: z. http://wordpress.org/plugins/disable-xml-rpc/
Sie können auch selbst einen Filter schreiben
add_filter('xmlrpc_enabled', '__return_false');
Sie können diesen Code einfach Ihrer theme functions.php hinzufügen (in wp-content/themes/your_theme).
Es wird jedoch empfohlen, ein untergeordnetes Thema zu erstellen ( http://codex.wordpress.org/Theme_Development ), damit Ihre Änderung beim Aktualisieren des Themas nicht verloren geht.
Alternativ können Sie Ihr Plugin erstellen ( http://codex.wordpress.org/Writing_a_Plugin ), in das Sie alle Ihre WordPress-Optimierungen einfügen.
Zum besseren Schutz füge ich noch Folgendes hinzu:
/**
* 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);
Wenn Ihr Server ein Apache ist, können Sie den Zugriff blockieren, bevor WordPress überhaupt mit einer Zeile in Ihrer .htaccess-Datei erreicht wird:
Redirect 403 /xmlrpc.php
Sie können eine weitere Zeile hinzufügen, um die Antwort kurz zu halten:
ErrorDocument 403 "no"
Dies sendet eine sehr minimale Antwort (zwei Bytes plus HTTP-Header) und schont Ihre Ressourcen für besseren Datenverkehr.
Eine andere Möglichkeit besteht darin, dies in Ihre .htaccess-Datei einzufügen:
<Files "xmlrpc.php">
order allow,deny
deny from all
errordocument 403 /noaccess.html
errordocument 404 /noaccess.html
</Files>