WordPress: Angriffe auf die XML-RPC-Schnittstelle unterbinden

WordPress XML-RPC deaktivieren, abschalten, unterbinden, htaccess

Passwortgeschützte Bereiche sind ein beliebtes Angriffsziel. So ist es also nichts Neues, dass viele WordPress-Nutzer die „wp-login.php“ bzw. den Admin-Bereich mit .htaccess schützen. Seit der WordPress-Version 3.5 ist die XML-RPC-Schnittstelle standardmäßig aktiviert. Die XML-RPC-Schnittstelle (Extensible Markup Language Remote Procedure Call) stellt nicht nur nützliche Funktionen bereit, sondern ist auch ein wichtiges Angriffsziel.

Die XML-RPC-Schnittstelle ist eigentlich ein nützliches Werkzeug für die Verwaltung von Inhalten. Sie dient dazu, dass man mittels Smartphone-Apps seine Website verwalten und Artikel verfassen kann. Aber die meisten WordPress-Nutzer brauchen diese Schnittstelle nicht, weil sie ihre Artikel direkt in WordPress am Desktop-PC verfassen.

Mit den einigen Tools lassen sich bei nur einer Anfrage an die XML-RPC-Schnittstelle sehr viele Passwörter unterbringen. Die Datei ermöglicht es den Angreifern, über Funktionsaufrufe Kombinationen von Passwort und Benutzernamen auszuprobieren. Sobald ein Bösewicht Passwort und Benutzername sendet, wird die „xmlrpc.php“ entsprechende Rückmeldungen geben, ob die Kombination richtig ist oder nicht. Somit stellt die XML-RPC-Schnittstelle ein großes Sicherheitsrisiko dar und sollte, sofern du diese nicht nutzt, zeitnah abgeschaltet werden.

XML-RPC-Schnittstelle abschalten

Solltest du per FTP-Programm Zugang zur .htaccess-Datei verfügen, gibt es die Möglichkeit die „xmlrpc.php“ vor Zugriff zu schützen. Die .htaccess findest du im Hauptverzeichnis der WordPress-Installation. In manchen Fällen existiert noch keine .htaccess-Datei. Erstelle in diesem Fall mit einem Text-Editor zum Beispiel den Microsoft Editor (Standard auf Windows-Rechnern) oder TextEdit (Standard auf Apple-Rechnern) eine leere Datei. Das geht ganz einfach.

Um die „xmlrpc.php“ vor unberechtigten Zugriffen zu schützen, füge folgenden Code in die .htaccess ein. Übrigens; die „wp-config.php“ schützen wir somit gleich mit. Lade nun die Datei mit einem FTP-Programm in das Hauptverzeichnis deiner WordPress-Installation.

Bis Apache 2.3:

# bis Apache 2.3
<FilesMatch "(^\.|wp-config\.php|xmlrpc\.php)"> 
   Order deny,allow 
   Deny from all 
</FilesMatch>

Ab Apache 2.4:

# ab Apache 2.4
<FilesMatch "(^\.|wp-config\.php|xmlrpc\.php)"> 
   Require all denied
</FilesMatch>

Sofern du XML-RPC gar nicht nutzt, solltest du zusätzlich mithilfe der „functions.php“ die XML-RPC-Schnittstelle vollständig deaktivieren.

Füge am Ende der „functions.php“ deines WordPress-Themes folgenden PHP-Code hinzu:

/* XML-RPC deaktivieren */
add_filter( 'xmlrpc_enabled', '__return_false' );
/* XML-RPC-Links aus dem WordPress-Header entfernen */
remove_action('wp_head', 'rsd_link');