Geschäftsführer, Webdesigner & Web-Entwickler, staatlich geprüfter Mediengestalter
Wie kann man die WordPress-eigene XML-RPC Schnittstelle (xmlrpc.php) deaktivieren? Wie das funktioniert und warum die Abschaltung sinnvoll ist, erklären wir in diesem Artikel.
Inhaltsverzeichnis
XML-RPC gibt es bereits seit 1998 und steht für Extensible Markup Language Remote Procedure Call. Einfach ausgedrückt, handelt es sich dabei um eine Protokollspezifikation für die Ausführung von RPC-Calls (Remote-Aufrufe in Computer-Netzwerken) mit XML und HTTP.
Auch WordPress nutzt XML-RPC und das übrigens bereits seit 2003. Zu diesem Zeitpunkt hieß WordPress noch b2 und war eine reine Blogging-Software. Bei WordPress ist bzw. war die XML-RPC Schnittstelle für verschiedene Aufgaben zuständig. Zum einen für die Kommunikation zwischen WordPress und anderen Blogging-Plattformen mittels Trackbacks und Pingbacks, zum anderen ist die Schnittstelle für die Kommunikation zwischen WordPress-System und WordPress Smartphone-App.
Letztgenanntes Anwendungsszenario ist übrigens auch der Grund, weshalb die XML-RPC Schnittstelle „ab Werk“ immer aktiviert ist. Noch vor WordPress Version 3.5 war dem nämlich nicht so. Zu diesem Zeitpunkt gab es aber auch noch keine Smartphone-App. Inzwischen hat die XML-RPC Schnittstelle ausgedient. Der Nachfolger ist die WordPress-eigene REST API, die deutlich flexibler, sicher und funktionsreicher ist. Der wohl einzige Grund, weshalb man die xmlrpc.php nicht schon gänzlich aus dem System entfernt hat, ist die Abwärtskompatibilität von WordPress. Aus diesem Grund müssen Webmaster selbst tätig werden — oder sie beauftragen ihren WordPress Programmierer damit.
Die Gründe, warum die XML-RPC Schnittstelle unbedingt abgeschaltet werden sollte, liegen auf der Hand: Zum einen wird die Schnittstelle nicht mehr benötigt, wie bereits erwähnt. Eigentlich schon Grund genug.
Darüber hinaus ist das Thema Sicherheit und xmlrpc.php immer wieder präsent — leider nutzen Angreifer die Schnittstelle regelmäßig für Angriffe aller Art — DDoS Attacken und Brute Force Angriffe sind keine Seltenheit.
Das sollten genug Gründe sein, der xmlrpc.php den Garaus zu machen, oder?
Zunächst einmal sollte man überprüfen, ob die XML-RPC Schnittstelle überhaupt noch aktiv ist oder möglicherweise bereits deaktiviert wurde. Das lässt sich ganz einfach bewerkstelligen. Dazu ruft man einfach die Schnittstelle über den Browser auf: www.beispiel-website.tld/xmlrpc.php.
Sofern hier die Meldung erscheint, dass die Schnittstelle noch aktiv ist, müssen die nächsten Schritte befolgt werden. Erhält man eine Fehlermeldung a lá „Zugriff verboten“, muss man an dieser Stelle nicht mehr weiterlesen.
Wie so oft gibt es auch für die Deaktivierung von XML-RPC verschiedene Mittel und Wege. Konkret kann man die XML-RPC Schnittstelle entweder mittels Plugin deaktivieren oder aber in der .htaccess Datei. Wir empfehlen letztgenannte Möglichkeit.
Der einfachste und schnellste Weg zur Deaktivierung der Schnittstelle geht über ein Plugin. Dieses hört auf den Namen „Disable XML-RPC“ und ist kostenlos im WordPress Plugin Pool erhältlich. Einfach installieren und aktivieren, dann ist die Schnittstelle deaktiviert.
Grundsätzlich sollte man immer so wenige Plugins wie nur nötig installieren. Daher empfehlen wir die Deaktivierung ohne Plugin, mittels .htaccess Datei oder über die functions.php.
Über die .htaccess Datei muss lediglich folgender Code integriert werden, wodurch der Zugriff auf die xmlrpc.php vom Server blockiert wird. Eine .htaccess Datei gibt es lediglich bei Apache Webservern. Wird nginx verwendet, empfehlen wir den Provider zu kontaktieren oder die nachstehende Filter-Lösung zu verwenden.
Über die functions.php des gegenwärtig verwendeten WordPress-Themes kann die Schnittstelle mittels Filter abgeschaltet werden.
Die XML-RPC-Spezifikation ist alles andere als zeitgemäß. Das ist auch der Grund für die vielen Sicherheitsprobleme, die damit einhergehen können. Aus diesem Grund sollte die Schnittstelle immer deaktiviert werden, wenn man sie nicht benötigt. Es gibt durchaus noch Szenarien, in denen die Schnittstelle nicht abgeschaltet werden kann. Zum Beispiel, wenn WordPress noch älter als Version 4.4 ist und damit noch keine alternative REST API zur Verfügung steht. In diesem Fall empfehlen wir dringend die Wartung des WordPress-Systems.
Sie benötigen eine WordPress Agentur? Wir stehen als Ihre Experten zur Verfügung. Treten Sie mit uns in Kontakt und vereinbaren Sie ein unverbindliches Beratungsgespräch.
In der Welt des Webhosting sind Begriffe wie FTP und SFTP gängig, doch nicht jede:r weiß direkt, wobei es sich hierbei handelt – geschweige...
mehr lesen
Angriffe auf IT-Systeme sind keine Phänomene der letzten Jahre, in der die Digitalisierung Rekord-artig anstieg. Schon seit den frühen 1990er Jahren lässt sich diese...
mehr lesen
HTTPS ist inzwischen Standard im Internet. Das gilt natürlich auch für Webseiten auf WordPress Basis. In diesem Artikel zeigen wir daher, wie man WordPress...
mehr lesen
Die Sicherheit eines Content Management Systems ist äußerst wichtig. Das gilt natürlich auch für WordPress. Eine Möglichkeit zur Optimierung der Sicherheit ist eine Zwei-Faktor-Authentifizierung,...
mehr lesen
Was ist WYSIWYG? WYSIWYG ist eine Abkürzung in englischer Sprache und steht für „What you see is what you get“,…
Was ist ein ALT-Tag (ALT-Attribut)? Ein Alt-Tag ist ein HTML-Attribut, das verwendet wird, um eine Alternative Textbeschreibung für ein Bild…
Was ist ein Cache? Ein Cache beschreibt einen digitalen Puffer- oder Zwischenspeicher, welcher für gewöhnlich auf Rechner, Browsern und Servers…
Schöner und umfassender Post zum leidigen Thema XML-RPC, Danke dafür. Einen Hinweis habe ich aber noch, der Link xmlrpc.eritreo.it führt nicht mehr zur gewünschten Website, die Domain scheint aufgegeben zu sein! schade eingetlich, aber vielleicht lässt sich ein anders Online-Tool finden!
Hallo Matteo,
vielen Dank für die Rückmeldung und den Hinweis mit dem Test-Tool. Wir haben den Artikel angepasst.
[Ubuntu 18.04 LTS, WP 5.5.3]
Die Lösung über die .htaccess bringt bei mit nur einen „Internal Server Error“.
Nach Einsetzen des Filters in die functions.php reagiert die Webseite nach Aufruf von mysite/xmlrpc.php immer noch mit „XML-RPC server accepts POST requests only.“ Scheint also nicht deaktiviert zu sein, oder?
Grüße
Uli
Hi Uli,
wenn du einen Server Error beim Aufruf der XMLRPC.php siehst, dann funktioniert die Blockierung korrekt.
Liebe Grüße