XML-RPC

Was ist XML-RPC?

XML-RPC ist ein älteres Remote-Procedure-Call-Protokoll, das HTTP als Transport und XML zur Datenkodierung nutzt. In WordPress ermöglicht es die Fernsteuerung einer WordPress-Installation von außen – zum Beispiel das Veröffentlichen von Beiträgen, das Hochladen von Medien oder die Verwaltung von Kommentaren über externe Tools.

Wozu XML-RPC in WordPress dient

Historisch war XML-RPC die Grundlage für Desktop-Publishing-Tools wie Windows Live Writer oder MarsEdit, mit denen Autoren WordPress-Beiträge schreiben konnten, ohne den Browser zu öffnen. Auch die offizielle WordPress-App für iOS und Android nutzt XML-RPC für ältere Verbindungen. Erreichbar ist die Schnittstelle unter domain.de/xmlrpc.php.

XML-RPC und Sicherheit

XML-RPC ist heute vor allem als Sicherheitsrisiko bekannt. Angreifer missbrauchen die Schnittstelle für:

  • Brute-Force-Angriffe – die system.multicall-Methode erlaubt es, hunderte Login-Versuche in einer einzigen HTTP-Anfrage zu bündeln, was normale Login-Schutzmaßnahmen umgeht
  • DDoS-Amplification – WordPress-Installationen werden als Relay für Angriffe auf andere Server missbraucht

XML-RPC deaktivieren

Wer keine Desktop-Publishing-Tools oder die alte WordPress-App nutzt, sollte XML-RPC vollständig deaktivieren. Der sauberste Weg ist das Sperren auf Server-Ebene:

# Nginx
location = /xmlrpc.php { deny all; }

# Apache (.htaccess)

    Order Allow,Deny
    Deny from all

Alternativ per WordPress-Filter: add_filter('xmlrpc_enabled', '__return_false'); – das deaktiviert XML-RPC auf Anwendungsebene, die Datei ist aber noch erreichbar. Server-seitiges Sperren ist zuverlässiger.