XML-RPC – Die WordPress-Hintertür, die kaum jemand kennt

XML-RPC ist eine Schnittstelle in WordPress, über die Angreifer in einer einzigen Anfrage tausende Loginversuche starten können. Die meisten Websites brauchen sie nicht – sollten sie aber deaktivieren.

Als erfahrener Webdesigner und SEO-Experte aus München sehe ich täglich, wie entscheidend die Sicherheit einer WordPress-Website ist. Oft sind es nicht die großen, bekannten Lücken, sondern die kleinen, unscheinbaren Details, die Angreifern eine unerwartete Tür öffnen. Eine solche „Hintertür“, die viele Website-Betreiber nicht einmal kennen, ist XML-RPC. Was auf den ersten Blick wie ein harmloses, veraltetes Protokoll aussieht, entpuppt sich bei genauerer Betrachtung als ernsthaftes Sicherheitsrisiko.

In diesem Beitrag erkläre ich Ihnen detailliert, was XML-RPC genau ist, warum es eine Gefahr für Ihre WordPress-Website darstellen kann und wie Sie es effektiv deaktivieren, um sich und Ihre Besucher zu schützen. Meine Empfehlung ist klar: Wenn Sie es nicht aktiv nutzen, sollten Sie es umgehend abschalten.

Was ist XML-RPC und wofür wurde es entwickelt?

XML-RPC ist ein Kommunikationsprotokoll, das entfernte Prozeduraufrufe (Remote Procedure Calls) über HTTP unter Verwendung von XML ermöglicht. Vereinfacht ausgedrückt: Es erlaubt externen Programmen, Funktionen auf Ihrem WordPress-Server auszuführen, ohne dass Sie sich im Browser einloggen müssen. In WordPress ist die Schnittstelle als Datei xmlrpc.php im Stammverzeichnis der Installation implementiert.

Sie wurde ursprünglich in den frühen 2000er-Jahren eingeführt, um Anwendungsfälle zu ermöglichen, bei denen externe Programme mit WordPress kommunizieren mussten, ohne den Webbrowser zu nutzen. Damals war das eine fortschrittliche Technologie. Typische Anwendungsbereiche waren:

  • Beiträge per E-Mail veröffentlichen: Eine Möglichkeit, Blogartikel über E-Mail-Clients zu erstellen und zu publizieren.
  • Mobile Apps: Erste Generationen von mobilen WordPress-Apps nutzten XML-RPC, um Beiträge zu verwalten oder zu veröffentlichen.
  • Externe Dienste: Integrationen mit Diensten wie Jetpack oder IFTTT, die Daten mit WordPress austauschen mussten.
  • Automatisierte Ping-Benachrichtigungen (Pingbacks/Trackbacks): Eine Funktion, die andere Blogs benachrichtigt, wenn Sie auf deren Inhalte verlinken, und umgekehrt.

In modernen WordPress-Setups werden diese Funktionen heute größtenteils über die WordPress REST API abgewickelt, die wesentlich sicherer, flexibler und leistungsfähiger ist. Die REST API nutzt moderne Webstandards und JSON für den Datenaustausch, was sie effizienter und leichter handhabbar macht. XML-RPC gilt daher als veraltet und in den meisten Fällen als überflüssig.

Warum ist XML-RPC ein ernstes Sicherheitsrisiko?

Die Schnittstelle ist aus zwei primären Gründen ein ernsthaftes Sicherheitsproblem, das ich bei meinen Kunden immer wieder thematisiere:

1. Brute-Force-Angriffe mit Multiplikator

Über XML-RPC können Hunderte, ja sogar Tausende von Loginversuchen in einer einzigen HTTP-Anfrage gebündelt werden. Die WordPress-Methode system.multicall erlaubt es, mehrere Befehle gleichzeitig zu übermitteln. Das bedeutet: Während ein normaler Brute-Force-Angriff auf den Standard-Login-Endpunkt (wp-login.php) einzelne Anfragen schickt, kann XML-RPC Tausende von Benutzername-Passwort-Kombinationen mit einem Bruchteil der Anfragen durchprobieren.

Stellen Sie sich vor, ein Angreifer müsste für jeden einzelnen Login-Versuch eine neue Tür aufstoßen. XML-RPC ist wie ein Generalschlüssel, der es ihm erlaubt, mit einem einzigen Aufwand Tausende von Türen gleichzeitig zu versuchen. Das macht solche Angriffe extrem effizient. Herkömmliche Login-Schutzmechanismen, die fehlerhafte Loginversuche pro IP-Adresse zählen und blockieren, greifen hier oft nicht – weil die Versuche gebündelt in einer einzigen, scheinbar validen Anfrage ankommen. Ein erfolgreicher Brute-Force-Angriff kann zu einem vollständigen Kompromittieren Ihrer Website führen: Datenklau, Einschleusung von Malware, Website-Defacement oder die Nutzung Ihrer Seite für Spam-Kampagnen sind nur einige der möglichen verheerenden Folgen.

2. DDoS-Angriffe über Pingbacks

Die Pingback-Funktion von XML-RPC kann missbraucht werden, um eine Zielwebsite mit Anfragen zu überfluten – bekannt als Distributed Denial of Service (DDoS)-Angriff. Der Angreifer sendet manipulierte Pingback-Anfragen an Tausende von WordPress-Websites, die alle XML-RPC aktiviert haben. Diese unzähligen WordPress-Installationen werden dann dazu veranlasst, gleichzeitig Anfragen an das vom Angreifer gewählte Ziel zu schicken.

Ihre eigene Website wird dabei unbemerkt zum Instrument eines DDoS-Angriffs, einem sogenannten “Reflected DDoS Attack”. Das bedeutet, dass Ihre Server-Ressourcen für Angriffe auf Dritte missbraucht werden, ohne dass Sie es merken. Die Folgen für Ihre Website können gravierend sein: Hohe Serverlast, die zu einer Verlangsamung oder gar zum Absturz Ihrer Website führt, kann zu einer Sperrung Ihres Accounts durch den Hoster führen – ohne dass Sie selbst etwas getan haben. Dies schädigt nicht nur Ihre Reputation, sondern kann auch erhebliche Kosten verursachen und Ihre Erreichbarkeit massiv beeinträchtigen.

Wer braucht XML-RPC noch und wie kann man es prüfen?

Die überwältigende Mehrheit der WordPress-Websites benötigt XML-RPC heute nicht mehr. Wenn Sie Ihre Website aktiv verwalten und keine sehr alten, spezialisierten Integrationen nutzen, ist die Wahrscheinlichkeit hoch, dass Sie XML-RPC gefahrlos deaktivieren können.

Ausnahmen, die XML-RPC möglicherweise noch nutzen:

  • Websites, die ältere Versionen von Jetpack nutzen: Einige Jetpack-Funktionen (insbesondere ältere) konnten auf XML-RPC angewiesen sein. Neuere Jetpack-Versionen setzen jedoch verstärkt auf die REST API.
  • Sehr alte mobile Apps: Falls Sie noch eine Mobile App aus den frühen WordPress-Zeiten nutzen, könnte diese auf XML-RPC basieren.
  • Spezifische Integrationen älterer Systeme: Seltene Fälle, in denen eine Drittanbieter-Software über XML-RPC mit WordPress kommuniziert.

So prüfen Sie, ob XML-RPC auf Ihrer Website aktiv ist: Öffnen Sie einfach Ihren Browser und rufen Sie https://ihredomain.de/xmlrpc.php auf (ersetzen Sie ihredomain.de durch Ihre tatsächliche Domain).

  • Erscheint der Text „XML-RPC server accepts POST requests only" → Die Schnittstelle ist aktiv und potenziell angreifbar.
  • Erscheint eine „403 Forbidden"-Meldung oder „404 Not Found" → Die Schnittstelle ist bereits blockiert oder deaktiviert.

Wie deaktiviert man XML-RPC effektiv?

Die Deaktivierung von XML-RPC ist ein wichtiger Schritt zur Verbesserung der Sicherheit Ihrer WordPress-Website und in den meisten Fällen einfach umzusetzen. Ich empfehle meinen Kunden stets, diese Maßnahme zu ergreifen. Hier sind die gängigsten Methoden:

1. Über ein Sicherheits-Plugin (empfohlen für Einsteiger): Die einfachste und sicherste Methode, besonders wenn Sie keine tiefgehenden technischen Kenntnisse haben, ist die Nutzung eines etablierten Sicherheits-Plugins. Plugins wie Wordfence, Solid Security (ehemals iThemes Security) oder Sucuri Security bieten in ihren Einstellungen oft eine direkte Option, XML-RPC zu blockieren oder zumindest Pingbacks zu deaktivieren. Aktivieren Sie diese Option, speichern Sie die Änderungen, und das Plugin erledigt den Rest.

2. Über die .htaccess-Datei (für Apache-Server): Diese Methode ist sehr effektiv, da sie den Zugriff auf die xmlrpc.php-Datei bereits auf Server-Ebene blockiert, bevor WordPress überhaupt geladen wird. Das spart auch Serverressourcen. Fügen Sie den folgenden Code am Anfang Ihrer .htaccess-Datei im Stammverzeichnis Ihrer WordPress-Installation hinzu:

<Files xmlrpc.php>
  Require all denied
</Files>

Diese Regel weist den Apache-Server an, alle Zugriffe auf die Datei xmlrpc.php zu verweigern.

3. Über wp-config.php (code-basierte Methode): Sie können XML-RPC auch direkt in der wp-config.php-Datei deaktivieren. Diese Methode greift, sobald WordPress geladen wird. Fügen Sie die folgende Zeile vor dem Kommentar /* That's all, stop editing! Happy blogging. */ in Ihre wp-config.php ein:

add_filter('xmlrpc_enabled', '__return_false');

Diese Codezeile nutzt einen WordPress-Filter, um die XML-RPC-Funktionalität global zu deaktivieren.

Wichtiger Hinweis für Jetpack-Nutzer oder ähnliche Dienste: Sollten Sie tatsächlich noch Dienste wie Jetpack nutzen, die (teilweise) auf XML-RPC angewiesen sind, kann eine vollständige Deaktivierung zu Problemen führen. In solchen Fällen können Sie stattdessen gezielt nur die Pingbacks deaktivieren, ohne die gesamte Schnittstelle zu sperren. Dies kann oft über die Einstellungen Ihres Sicherheits-Plugins oder durch spezifischen Code in Ihrer functions.php (innerhalb eines Child-Themes) erfolgen. Prüfen Sie jedoch immer, ob Jetpack nicht bereits die REST API nutzt oder ob eine Aktualisierung auf eine neuere Version die Abhängigkeit von XML-RPC reduziert.

Fazit: Ein kleiner Schritt für große Sicherheit

XML-RPC ist eine veraltete Schnittstelle, die auf den meisten WordPress-Websites aktiv ist – obwohl sie nicht gebraucht wird. Sie öffnet Brute-Force-Angriffen eine kaum bekannte Hintertür und kann Ihre Website unwissentlich in einen DDoS-Angriff verwickeln. Die Lösung ist einfach und in wenigen Minuten umsetzbar: Prüfen Sie, ob die Schnittstelle gebraucht wird – wenn nicht, blockieren Sie sie umgehend.

Die Sicherheit Ihrer WordPress-Website sollte niemals vernachlässigt werden. Indem Sie diese Schnittstelle deaktivieren, schließen Sie eine potenziell gefährliche Hintertür und verbessern die allgemeine Sicherheit Ihrer Website erheblich. Es ist ein kleiner Schritt mit großer Wirkung, den ich jedem WordPress-Betreiber dringend empfehle. Eine sichere Website ist nicht nur für Sie selbst wichtig, sondern auch für Ihre Besucher und nicht zuletzt für Ihre Sichtbarkeit in Suchmaschinen. Wenn Sie Unterstützung bei der Optimierung der Sicherheit oder der allgemeinen SEO Ihrer Website benötigen, stehe ich Ihnen gerne zur Verfügung.