Die XML-RPC WordPress-Spezifikation wurde entwickelt, um die Kommunikation zwischen verschiedenen Systemen zu standardisieren, was bedeutet, dass Anwendungen außerhalb von WordPress (wie z.B. andere Blogging-Plattformen und Desktop-Clients) mit WordPress interagieren können.

Diese Spezifikation war von Anfang an ein Teil von WordPress und hat einen sehr nützlichen Job gemacht. Ohne sie wäre WordPress in seinem eigenen Silo, getrennt vom Rest des Internets, gewesen.

Allerdings hat xmlrpc.php auch seine Schattenseiten. Es kann Schwachstellen in deine WordPress Webseite einführen und wurde nun durch die WordPress REST API ersetzt, die eine viel bessere Arbeit leistet, WordPress für andere Anwendungen zu öffnen.

In diesem Beitrag erklären wir, was xmlrpc.php ist, warum du es deaktivieren solltest und helfen dir zu erkennen, ob es auf deiner WordPress Webseite läuft.

Bereit? Lass uns loslegen!

Was ist xmlrpc.php?

XML-RPC ist eine Spezifikation, die die Kommunikation zwischen WordPress und anderen Systemen ermöglicht. Dies wurde erreicht, indem diese Kommunikation standardisiert wurde, indem HTTP als Transportmechanismus und XML als Kodierungsmechanismus verwendet wurde.

XML-RPC ist älter als WordPress: es war bereits in der b2-Blogging-Software enthalten, die 2003 zur Erstellung von WordPress verwendet wurde. Der Code hinter diesem System ist in einer Datei namens xmlrpc.php im Hauptverzeichnis der Webseite gespeichert. Und sie ist immer noch da, auch wenn XML-RPC weitgehend veraltet ist.

In den frühen Versionen von WordPress war XML-RPC standardmäßig deaktiviert. Aber seit Version 3.5 ist es standardmäßig aktiviert. Der Hauptgrund dafür war, dass die WordPress Mobile App mit deiner WordPress-Installation kommunizieren kann.

Wenn du die WordPress Mobile App vor Version 3.5 benutzt hast, erinnerst du dich vielleicht daran, dass du XML-RPC auf deiner Webseite aktivieren musstest, damit die App Inhalte posten kann. Das lag daran, dass die App nicht WordPress selbst ausgeführt hat, sondern eine separate App war, die über xmlrpc.php mit deiner WordPress Webseite kommunizierte.

Aber es war nicht nur die mobile Anwendung, für die XML-RPC verwendet wurde: es wurde auch verwendet, um die Kommunikation zwischen WordPress und anderen Blogging-Plattformen zu ermöglichen, es ermöglichte Trackbacks und Pingbacks, und es unterstützte das Jetpack-Plugin, das eine selbst gehostete WordPress Webseite mit WordPress.com verbindet.

Aber seit die REST API in den WordPress Core integriert wurde, wird die xmlrpc.php Datei nicht mehr für diese Kommunikation verwendet. Stattdessen wird die REST-API für die Kommunikation mit der WordPress Mobile-App, mit Desktop-Clients, mit anderen Blogging-Plattformen, mit WordPress.com (für das Jetpack-Plugin) und mit anderen Systemen und Diensten verwendet. Die Bandbreite der Systeme, mit denen die REST-API interagieren kann, ist viel größer als die von xmlrpc.php erlaubte. Außerdem gibt es viel mehr Flexibilität.

Da die REST API XML-RPC abgelöst hat, solltest du xmlrpc.php auf deiner Webseite jetzt deaktivieren. Schauen wir mal warum.

Warum du xmlrpc.php deaktivieren solltest

Der Hauptgrund, warum du xmlrpc.php auf deiner WordPress Webseite deaktivieren solltest, ist, dass es Sicherheitslücken einführt und das Ziel von Angriffen sein kann.

Jetzt, da XML-RPC nicht mehr benötigt wird, um außerhalb von WordPress zu kommunizieren, gibt es keinen Grund mehr, es aktiv zu lassen. Deshalb ist es ratsam, deine Webseite sicherer zu machen, indem du sie deaktivierst.

“Wenn xmlrpc.php eine Sicherheitslücke ist und nicht mehr funktioniert, warum wurde es dann nicht ganz aus WordPress entfernt?”

Der Grund dafür ist, dass eines der Hauptmerkmale von WordPress immer die Abwärtskompatibilität sein wird. Wenn du deine Webseite gut verwaltest, wirst du wissen, dass es wichtig ist, WordPress auf dem neuesten Stand zu halten, ebenso wie alle Plugins oder Themes.

Aber es wird immer Webseitenbesitzer geben, die nicht willens oder nicht in der Lage sind, ihre Version von WordPress zu aktualisieren. Wenn sie eine Version verwenden, die älter als die REST-API ist, benötigen sie trotzdem Zugang zu xmlrpc.php.

Schauen wir uns die spezifischen Schwachstellen genauer an.

DDoS-Angriffe über XML-RPC-Pingbacks

Eine der Funktionen, die xmlrpc.php aktiviert hat, waren Pingbacks und Trackbacks. Dies sind die Benachrichtigungen, die in den Kommentaren auf deiner Webseite erscheinen, wenn ein anderer Blog oder eine andere Webseite auf deinen Inhalt verlinkt.

Die XML-RPC-Spezifikation war es, die diese Kommunikation möglich machte, aber das wurde durch die REST API ersetzt (wie wir bereits gesehen haben).

Wenn XML-RPC auf deiner Webseite aktiviert ist, könnte ein Hacker möglicherweise eine DDoS-Attacke auf deine Webseite starten, indem er xmlrpc.php ausnutzt, um in kurzer Zeit eine große Anzahl von Pingbacks an deine Webseite zu senden. Dies könnte deinen Server überlasten und deine Webseite außer Gefecht setzen.

Brute Force Angriffe über XML-RPC

Jedes mal wenn xmlrpc.php eine Anfrage macht, sendet es den Benutzernamen und das Passwort zur Authentifizierung. Dies stellt eine erhebliche Sicherheitslücke dar und ist etwas, was die REST-API nicht tut. Tatsächlich verwendet die REST-API OAuth, das Token zur Authentifizierung anstelle von Benutzernamen oder Passwörtern sendet.

Da xmlrpc.php bei jeder Anfrage Authentifizierungsinformationen sendet, könnten Hacker diese Informationen nutzen, um zu versuchen, auf deine Webseite zuzugreifen. Eine Brute-Force-Attacke wie diese könnte ihnen erlauben, Inhalte einzufügen, Code zu löschen oder deine Datenbank zu beschädigen.

Wenn ein Angreifer genug Anfragen an deine Webseite sendet, jede mit einem anderen Benutzernamen- und Passwort-Paar, besteht die Möglichkeit, dass er schließlich auf die richtige trifft, um Zugang zu deiner Webseite zu erhalten.

Aus diesem Grund solltest du, wenn du eine aktuelle Version von WordPress verwendest, die die REST-API zur Kommunikation mit externen Systemen nutzt, xmlrpc.php deaktivieren. Sie wird nicht benötigt und könnte deine Webseite angreifbar machen.

Info

Obwohl OAuth von Kinsta nicht nativ unterstützt wird, können Pläne von Enterprise und höher darum bitten, dass sie implementiert werden.

Läuft xmlrpc.php auf deiner WordPress Webseite?

Das erste, was du als erstes brauchst, ist herauszufinden, ob xmlrpc.php auf deiner WordPress Webseite läuft.

Dies ist kein einfacher Fall der Überprüfung, ob die Datei vorhanden ist: sie ist Teil jeder WordPress-Installation und wird auch dann vorhanden sein, wenn XML-RPC deaktiviert ist.

Erstelle immer ein Backup deiner Webseite, bevor du etwas löschst. In diesem Fall solltest du nicht einfach die Datei xmlrpc.php löschen, denn das würde deine Webseite kaputt machen.

Um zu überprüfen, ob xmlrpc.php auf deiner Webseite aktiviert ist, benutze den WordPress XML-RPC Validation Service. Dieser wird deine Webseite überprüfen und dir mitteilen, ob xmlrpc.php aktiviert ist.

WordPress XML-RPC Validation Service

WordPress XML-RPC Validation Service

Hier ist das Ergebnis, das ich bekommen habe, als ich diese Webseite auf dem Service geprüft habe.

Kinsta XML-RPC Check

Kinsta XML-RPC Check

Dies zeigt, dass xmlrpc.php auf kinsta.com deaktiviert wurde. Wenn du also die Überprüfung durchführst und feststellst, dass xmlrpc.php auf deiner Webseite immer noch aktiviert ist, wie schaltest du es dann aus?

Wie man xmlrpc.php deaktiviert

Es gibt drei Möglichkeiten, xmlrpc.php zu deaktivieren:

Schauen wir uns jede einzeln an.

Wie man xmlrpc.php mit einem Plugin deaktiviert

Ein Plugin zu installieren, um xmlrpc.php zu deaktivieren, ist der einfachste Weg, dies zu tun. Das Disable XML-RPC-Plugin wird es komplett deaktivieren. Hier siehst du, wie du es benutzt.

Mein Ausgangspunkt ist meine eigene Webseite, auf der xmlrpc.php aktiviert ist. Du kannst dies über den Check sehen, den ich gemacht habe:

Rachel McCollin Webseite - XML-RPC-Prüfung

Rachel McCollin Webseite – XML-RPC-Prüfung

Installiere das Plugin über deinen Pluginsbildschirm im WordPress-Admin und aktiviere es.

Du musst nichts weiter tun: das Aktivieren des Plugins führt dazu, dass XML-RPC deaktiviert wird. Wenn ich nun einen Check auf meiner Webseite durchführe, erhalte ich ein anderes Ergebnis:

Rachel McCollin Webseite - zweiter XML-RPC-Check

Rachel McCollin Webseite – zweiter XML-RPC-Check

So einfach ist das!

Deaktiviere XML-RPC-Pingbacks mit einem Plugin

Aber was ist, wenn du einige Aspekte von xmlrpc.php deaktivieren willst und andere nicht? Mit dem Disable XML-RPC Pingback-Plugin kannst du nur die Pingback-Funktionalität deaktivieren, was bedeutet, dass du immer noch Zugang zu anderen Funktionen von XML-RPC hast, wenn du sie benötigst.

Das Plugin funktioniert auf die gleiche Weise wie das Disable XML-RPC-Plugin: einfach installieren, aktivieren und es wird funktionieren.

XML-RPC und REST API-Aktivierung mit einem Plugin konfigurieren

Wenn du genauere Kontrolle darüber haben möchtest, wie sowohl xmlrpc.php als auch die REST API auf deiner Webseite konfiguriert sind, kannst du das REST XML-RPC Data Checker Plugin installieren.

Wenn du dieses Plugin installiert und aktiviert hast, gehe zu Einstellungen > REST XML-RPC Data Checker und klicke auf den XML-RPC Reiter.

REST XML-RPC Data Checker

REST XML-RPC Data Checker

Damit kannst du genau konfigurieren, welche Aspekte von xmlrpc.php auf deiner Webseite aktiv sind.

Alternativ kannst du sie auch einfach ganz ausschalten. Und wenn du auch die Kontrolle über die REST-API haben willst, gibt dir das Plugin einen weiteren Tab dafür.

Du brauchst ein blitzschnelles, sicheres und entwicklerfreundliches Hosting? Kinsta wurde mit Blick auf WordPress-Entwickler entwickelt und bietet dir zahlreiche Tools und ein leistungsstarkes Dashboard. Schaut euch unsere Pläne an

Wie man xmlrpc.php ohne Plugin deaktiviert

Wenn du lieber kein weiteres Plugin auf deiner Webseite installieren möchtest, kannst du xmlrpc.php deaktivieren, indem du etwas Code in einem Filter oder in deiner .htaccess-Datei hinzufügst. Schauen wir uns beide Methoden an.

Deaktiviere xmlrpc.php über einen Filter

Eine Option hier ist, den Filter xmlrpc_enabled zu benutzen, um xmlrpc.php zu deaktivieren. Füge diese Funktion zu einem Plugin hinzu und aktiviere sie auf deiner Webseite:

add_filter( 'xmlrpc_enabled', '__return_false' );

Du könntest diese Funktion in deine Theme-Functions-Datei einfügen, aber es ist besser, ein Plugin zu schreiben.

Die andere Option hat mit dem Editieren deiner .htaccess-Datei zu tun, die bei Hosting-Providern, die Apache verwenden, verfügbar ist, indem du dich per FTP oder cPanel mit dem Server deiner Webseite verbindest.

Info

Kinsta benutzt den Nginx-Webserver, was bedeutet, dass du keine funktionierende .htaccess-Datei haben wirst. Stattdessen kannst du die Vorteile von In-Dashboard-Werkzeugen nutzen, die einen Großteil der wichtigen .htaccess-Funktionalität auf eine intuitivere Art und Weise über das MyKinsta-Dashboard nachbilden können.

Deaktiviere xmlrpc.php über die .htacess-Datei

Füge diesen Code in deine .htaccess-Datei ein:

<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>

Stelle sicher, dass du vorher eine Kopie der alten Datei anfertigst, für den Fall, dass du Probleme bekommst.

Lass deinen Hosting-Provider xmlrpc.php deaktivieren

Alternativ bieten dir einige Hosting-Provider an, xmlrpc.php zu deaktivieren, wenn ein Angriff entdeckt wird.

Bei Kinsta wird, wenn ein Angriff über XML-RPC erkannt wird, automatisch ein Code-Schnipsel in die Nginx.config-Datei eingefügt:

location ~* ^/xmlrpc.php$ {
return 403;
}

Dies wird einen 403-Fehler erzeugen und den Angriff in seinen Spuren stoppen.

Wenn du das selbst machst, ist es am besten, eine der oben genannten Methoden zu verwenden. Aber bevor du das tust, erkundige dich immer zuerst bei deinem Hosting-Provider.

Wann braucht ihr xmlrpc.php zu aktivieren?

Es mag einige Gelegenheiten geben, bei denen du xmlrpc.php auf deiner WordPress Webseite aktivieren musst oder wenn du es nicht komplett deaktivieren solltest.

Diese sind:

Das ist alles! Nichts davon sind besonders gute Gründe dafür, die XML-RPC-Spezifikation eingeschaltet zu lassen.

Der einzige Grund, warum sie noch in WordPress ist, ist die Abwärtskompatibilität und du würdest sie nur benutzen, wenn du mit veralteten Systemen arbeitest. Für jeden, der seine Webseiten auf dem neuesten Stand halten und mit der neuesten Technologie arbeiten möchte, ist das Deaktivieren von xmlrpc.php der richtige Weg.

XML-RPC war einst ein wesentlicher Bestandteil von WordPress. Jetzt stellt es ein Sicherheitsrisiko dar 🔒 - Diese Anleitung wird dir genau zeigen, wie du es auf deiner Webseite deaktivieren kannst 🚨.Click to Tweet

Zusammenfassung

Die XML-RPC-Spezifikation wurde schon vor der Entstehung von WordPress entwickelt, um WordPress die Kommunikation mit externen Systemen und Anwendungen zu ermöglichen. Sie hat inhärente Sicherheitslücken und könnte deine Webseite anfällig für Angriffe machen.

Jetzt, da die REST API deine Webseite mit anderen Anwendungen kommunizieren lässt, kannst du xmlrpc.php sicher deaktivieren. Wenn du die obigen Schritte befolgst, verbesserst du die Sicherheit deiner Webseite, indem du sie deaktivierst.


Wenn Dir dieser Artikel gefallen hat, dann wirst du Kinsta’s WordPress Hosting-Plattform lieben. Beschleunige deine Webseite und erhalte 24/7 Support von unserem erfahrenen WordPress-Team. Unsere Google Cloud basierte Infrastruktur konzentriert sich auf die Bereiche Auto-Scaling, Performance und Sicherheit. Lass uns dir den Kinsta-Unterschied zeigen! Schau Dir hier unsere Pakete an