Hushfort

Was ist xmlrpc.php, und wie deaktiviere ich XML-RPC in WordPress?

Von Eureka Studio · Aktualisiert

Kurze Antwort

Über XML-RPC können sich Apps per xmlrpc.php anmelden – eine eigene Tür, die das Verstecken von wp-login.php nicht schließt. Das Deaktivieren ist sicher, solange du nicht Jetpack oder die WordPress-App nutzt. Blockiere die Datei in der .htaccess, füge den Filter xmlrpc_enabled hinzu oder nutze ein Plugin, das den XML-RPC-Login schließt und Pingbacks behält. Teste es danach.

Schritte

  1. 1Schritt 1

    Prüfen, ob xmlrpc.php antwortet

    Ruf yoursite.com/xmlrpc.php auf. Siehst du „XML-RPC server accepts POST requests only.“, ist die Tür offen.

    yoursite.com/xmlrpc.php antwortet: XML-RPC server accepts POST requests only
  2. 2Schritt 2

    Verstehen, warum das wichtig ist

    Der Angriffsflächen-Scan von Hushfort probiert es wirklich aus. Bei einer offenen Website meldet er, dass sich Passwörter unter Umgehung des versteckten Login-Pfads ausprobieren lassen und dass system.multicall eine einzige Anfrage Hunderte Versuche transportieren lässt.

    Angriffsflächen-Scan in der Hushfort-Übersicht: XML-RPC offen, system.multicall ebenfalls offen, dazu geben REST-Benutzerliste und Autoren-Scan den Benutzernamen demo-admin preis
  3. 3Schritt 3

    Entscheiden, wie weit du sie schließt

    Öffne Hushfort → Angriffsflächen-Härtung und schalte „Angriffsflächen-Härtung aktivieren“ ein. XML-RPC steht zunächst auf „Login deaktivieren, Pingbacks behalten (empfohlen)“, was für die meisten Websites passt. „Komplett deaktivieren“ ist am strengsten, stoppt aber Jetpack und die offizielle App. Klicke auf „Änderungen speichern“.

    Angriffsflächen-Härtung eingeschaltet, XML-RPC auf Login deaktivieren, Pingbacks behalten (empfohlen) gesetzt
  4. 4Schritt 4

    Testen, ob der Login über XML-RPC abgewiesen wird

    Klicke zurück in der Übersicht auf „Erneut scannen“. Die XML-RPC-Zeile sollte jetzt lauten: „Login deaktiviert – Passwortversuche werden abgewiesen, Pingbacks funktionieren weiter.“

    Angriffsflächen-Scan nach der Korrektur: XML-RPC, REST-Benutzerliste, Autoren-Scan und Autorenliste in der Sitemap alle geschlossen

Warum das wichtig ist

XML-RPC ist eine alte Fernsteuerungsschnittstelle für WordPress. Bevor es die REST-API gab, veröffentlichten Desktop-Editoren und mobile Apps darüber Beiträge. Sie ist noch immer in jeder WordPress-Website enthalten, unter /xmlrpc.php, und nimmt noch immer bei jeder Anfrage einen Benutzernamen und ein Passwort an. Wer XML-RPC in WordPress deaktiviert oder zumindest den Login darüber schließt, schließt diese Tür.

Damit ist sie eine zweite Login-Tür. Das Verstecken von wp-login.php berührt sie nicht. Login-Limit-Code, der nur das Login-Formular überwacht, sieht sie nicht. Und mit system.multicall kann eine einzige HTTP-Anfrage Hunderte Passwortversuche transportieren. Ein Limit, das Anfragen zählt, sieht einen Versuch, wo es fünfhundert waren.

Das ist keine Theorie. Wir haben diese Ebene gebaut, nachdem ein Shop weiterhin Passwortversuche über XML-RPC erhielt, während seine Login-Seite bereits versteckt war.

Nutzt du XML-RPC? Wahrscheinlich nicht, wenn nichts davon auf dich zutrifft:

  • Du verbindest die Website mit Jetpack.
  • Du veröffentlichst oder moderierst über die offizielle WordPress-App.
  • Du nutzt ein älteres Desktop-Blogging-Werkzeug oder einen Dienst, der deinen WordPress-Benutzernamen und dein Passwort verlangt (statt eines Anwendungspassworts), um in deinem Namen zu posten.
  • Du bist auf Pingbacks von anderen Blogs angewiesen.

Wenn du unsicher bist, schließe nur den Login und behalte die Pingbacks. Damit ist das Risiko des Passwort-Ratens weg, und die harmlosen Teile bleiben erhalten. Strenger werden kannst du später immer noch.

Häufige Fehler

  • Den Login verstecken und es dabei belassen. Das Passwort-Raten wandert einfach zu xmlrpc.php.
  • Die ganze Datei ungeprüft blockieren. Jetpack und die offizielle WordPress-App verbinden sich über XML-RPC. Wenn du sie nutzt, schließe nur die Login-Methoden oder teste sorgfältig.
  • Einem Schalter ungetestet vertrauen. Manche Methoden lassen Teile von XML-RPC weiter antworten. Prüfe das Ergebnis immer mit einer echten Anfrage (siehe Schritt 4 oder prüfen, was deine Website preisgibt).
  • Die Cache-Ebene vergessen. Blockiert schon eine CDN-Regel xmlrpc.php, zeigt eine Einstellung auf WordPress-Ebene keine Wirkung. Das ist in Ordnung; wisse nur, welche Ebene die Arbeit macht.

Ohne Plugin

Option 1: der Filter xmlrpc_enabled. Füge das in ein kleines Must-use-Plugin (wp-content/mu-plugins/no-xmlrpc-login.php) oder die functions.php deines Child-Themes ein:

<?php
add_filter( 'xmlrpc_enabled', '__return_false' );

Das deaktiviert XML-RPC-Methoden, die eine Anmeldung erfordern. Pingbacks funktionieren weiter, weil sie keine brauchen. Für sich allein entfernt es system.multicall nicht, und die Datei beantwortet weiterhin Anfragen. Um auch die Multicall-Methode zu entfernen:

<?php
add_filter( 'xmlrpc_methods', function ( $methods ) {
    unset( $methods['system.multicall'] );
    return $methods;
} );

Option 2: die Datei auf dem Server blockieren. Unter Apache in der .htaccess:

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

Unter Nginx: location = /xmlrpc.php { deny all; }. Das ist die strengste Option und kostet den Server nichts, legt aber auch Pingbacks, Jetpack und die App lahm – und sie liegt außerhalb von WordPress, gerät also beim Hosterwechsel leicht in Vergessenheit.

Wenn etwas schiefgeht

  • Jetpack zeigt einen Verbindungsfehler. Jetpack braucht XML-RPC. Wechsle von „Komplett deaktivieren“ zu „Login deaktivieren, Pingbacks behalten“ oder entferne deine Serverregel.
  • Die WordPress-App kann sich nicht anmelden. Dieselbe Ursache. Nutze entweder den Browser auf dem Handy oder erlaube den XML-RPC-Login und verlass dich auf Login-Limits plus Zwei-Faktor-Authentifizierung.
  • Ein Publishing-Werkzeug postet nicht mehr. Prüfe, ob es XML-RPC nutzt. Die meisten modernen Werkzeuge sind auf die REST-API mit Anwendungspasswörtern umgestiegen.

Mit Hushfort

Die Hintertür-Sperre gehört zu Hushfort Pro. Der Angriffsflächen-Scan, der zeigt, ob XML-RPC offen ist, steckt in Hushfort Security, dem kostenlosen WordPress-Sicherheitsplugin.

Die Hintertür-Sperre ist Teil der Ebene Angriffsflächen-Härtung von Hushfort. Sie bietet dir vier Optionen:

  • Login deaktivieren, Pingbacks behalten (empfohlen): Passwort-Raten über XML-RPC wird unmöglich, Pingbacks und Trackbacks funktionieren weiter. Passt gut zu Shops.
  • Komplett deaktivieren: die strengste Option. Jetpack und die offizielle App können sich nicht verbinden.
  • Nur system.multicall deaktivieren: schließt das Massen-Raten und lässt den Rest unberührt.
  • Nicht ändern: der WordPress-Standard.

Der Angriffsflächen-Scan prüft das Ergebnis anschließend mit echten Anfragen, sodass du siehst, was ein Außenstehender sieht. Der Lastschutz bepreist xmlrpc.php-Anfragen außerdem höher als einen normalen Seitenaufruf, was verbleibenden Lärm ausbremst.

Häufige Fragen

Ist es sicher, XML-RPC in WordPress zu deaktivieren?

Für die meisten Websites ja. Das moderne WordPress nutzt für den Block-Editor und die meisten Integrationen die REST-API. XML-RPC wird noch von Jetpack, der offiziellen WordPress-App und einigen älteren Publishing-Werkzeugen genutzt – prüfe diese also zuerst.

Versteckt das Verstecken der Login-Seite auch xmlrpc.php?

Nein. xmlrpc.php nimmt Benutzernamen und Passwörter eigenständig an, Angreifer können dort also weiterraten, nachdem du wp-login.php versteckt hast.

Was ist system.multicall?

Eine XML-RPC-Methode, die viele Aufrufe in einer Anfrage ausführt. Angreifer nutzen sie, um Hunderte Passwortversuche in einer einzigen Anfrage zu schicken – das rutscht an Limits vorbei, die Anfragen zählen.

Macht das Deaktivieren von XML-RPC Pingbacks kaputt?

Wenn du die ganze Datei blockierst, ja. Schließt du nur den XML-RPC-Login und lässt die Pingback-Methode offen, funktionieren Pingbacks und Trackbacks weiter.

Schaltet der Filter xmlrpc_enabled XML-RPC komplett ab?

Nein. Er deaktiviert nur Methoden, die eine Anmeldung erfordern. Die Datei antwortet weiterhin, und Pingback-Aufrufe laufen weiter. Oft ist genau das gewollt – teste das Ergebnis aber.

Fehler melden oder Funktion wünschen

Deine Nachricht geht direkt an das Team, das Hushfort entwickelt.

Worum geht es?

Nur für unsere Antwort an dich.

Wir nutzen diese Angaben nur, um dir zu antworten. Datenschutz