XML-RPC
XML-RPC ist eine Schnittstelle in WordPress, die es externen Anwendungen ermöglicht, über HTTP-Anfragen mit der Website zu kommunizieren. Über die Datei xmlrpc.php im WordPress-Stammverzeichnis können Programme Beiträge erstellen, Medien hochladen, Kommentare verwalten und andere Aktionen ausführen, ohne das WordPress-Dashboard zu nutzen. Das Protokoll verwendet XML zur Kodierung der Aufrufe und HTTP als Transportschicht.
Technischer Hintergrund
XML-RPC war vor der Einführung der REST-API die primäre Schnittstelle für externe Zugriffe auf WordPress. Sie implementiert verschiedene Methoden wie wp.getPosts, wp.newPost, wp.uploadFile und wp.getComments. Die Authentifizierung erfolgt über Benutzername und Passwort, die bei jedem Aufruf im Klartext (base64-kodiert) übertragen werden – eine sichere Verbindung über HTTPS ist daher zwingend erforderlich.
Besonders problematisch ist die Methode system.multicall, die es erlaubt, hunderte oder tausende Einzelaufrufe in einer einzigen HTTP-Anfrage zu bündeln. Angreifer nutzen dies für Brute-Force-Angriffe, indem sie in einer Anfrage Hunderte von Passwort-Kombinationen testen. Darüber hinaus kann die Pingback-Funktion von XML-RPC für DDoS-Amplification-Angriffe missbraucht werden, bei denen die WordPress-Installation als Verstärker für Attacken auf Dritte dient.
Seit WordPress 4.7 (Dezember 2016) ist die REST-API die bevorzugte und leistungsfähigere Alternative zu XML-RPC. Die REST-API bietet differenziertere Authentifizierungsmethoden (Application Passwords, OAuth, JWT), ist besser dokumentiert und unterstützt moderne Anwendungsfälle wie den Block-Editor und Headless-WordPress-Architekturen.
Bedeutung für die WordPress-Wartung
Für die meisten modernen WordPress-Websites gibt es keinen funktionalen Grund mehr, XML-RPC aktiviert zu lassen. Die Schnittstelle stellt ein erhebliches Sicherheitsrisiko dar und wird aktiv als Angriffsvektor genutzt. In der Wartungsroutine sollte geprüft werden, ob XML-RPC noch von externen Diensten benötigt wird (z. B. Jetpack-Plugin, ältere mobile Apps, bestimmte IFTTT-Integrationen). Falls nicht, sollte die Schnittstelle deaktiviert oder auf Serverebene blockiert werden. Die Zugriffslogs auf xmlrpc.php zeigen häufig tausende Angriffsversuche pro Tag.
Häufige Probleme
- XML-RPC bleibt standardmässig aktiviert, obwohl es nicht genutzt wird – offene Angriffsfläche
- Massiver Traffic auf
xmlrpc.phpdurch automatisierte Brute-Force-Angriffe belastet den Server - Die Pingback-Funktion wird für DDoS-Verstärkungsangriffe auf Dritte missbraucht
- Sicherheits-Plugins blockieren XML-RPC nur auf PHP-Ebene, wodurch der Server trotzdem belastet wird
- Legitime Dienste (Jetpack, mobile Apps) funktionieren nicht mehr nach der Deaktivierung
- Keine Zwei-Faktor-Authentifizierung möglich, da XML-RPC nur Benutzername/Passwort unterstützt
Best Practices
- XML-RPC vollständig deaktivieren, wenn keine externen Dienste darauf angewiesen sind
- Blockierung bevorzugt auf Webserver-Ebene (Apache/Nginx-Regel) statt nur per Plugin, um PHP-Last zu vermeiden
- Falls XML-RPC benötigt wird: Zugriff per IP-Whitelist auf die bekannten Dienst-IPs beschränken
- Die REST-API mit Application Passwords als moderne Alternative nutzen
- Server-Logs regelmässig auf ungewöhnlich hohen Traffic auf
xmlrpc.phpprüfen - Web Application Firewall (WAF) einsetzen, die XML-RPC-Missbrauchsmuster erkennt und blockiert
- Wenn nur Pingbacks deaktiviert werden sollen, dies über den Filter
xmlrpc_methodsgezielt tun statt die gesamte Schnittstelle zu deaktivieren
In unserer Wartung setzen wir Updates, Backups, Monitoring und Sicherheitsmaßnahmen als abgestimmten Prozess um. Wartungsleistungen ansehen →
