xmlrpc.php in WordPress: warum gesperrt und wie freigeben
Auf unseren Webservern ist die Datei xmlrpc.php von WordPress standardmäßig gesperrt. Das schützt Ihre Website vor einem der meistgenutzten Einbruchswege und hält Ihre Website schnell. Benötigen Sie xmlrpc.php trotzdem? Dann geben Sie die Datei mit wenigen Klicks frei, für Ihre eigenen IP-Adressen oder (nicht empfohlen) für alle. In diesem Artikel erfahren Sie, wie das geht.
1. Was ist xmlrpc.php?
xmlrpc.php ist eine alte Schnittstelle in WordPress. Externe Programme können sich darüber anmelden und Beiträge veröffentlichen, zum Beispiel ein Blogprogramm auf Ihrem Computer. Auch Pingbacks (Meldungen, dass eine andere Website auf Ihre verlinkt) laufen über diese Datei.
Moderne WordPress-Komponenten nutzen xmlrpc.php kaum noch. Das Dashboard, der Block-Editor und die meisten Plugins arbeiten über die REST API.
2. Warum ist xmlrpc.php standardmäßig gesperrt?
xmlrpc.php ist das bevorzugte Ziel von Angreifern:
- Passwörter im großen Stil erraten. Mit einer einzigen Anfrage an xmlrpc.php lassen sich Hunderte Passwörter gleichzeitig ausprobieren. Ein schwaches Passwort ist so schnell gefunden.
- Ihre Website wird langsamer. Jeder Versuch startet WordPress. Tausende Versuche pro Tag kosten Rechenleistung, die Ihre Besucher brauchen.
- Missbrauch gegen andere. Über Pingbacks kann Ihre Website dazu benutzt werden, andere Websites anzugreifen.
Weil xmlrpc.php standardmäßig gesperrt ist, werden diese Angriffe abgewehrt, bevor sie Ihre Website erreichen.
3. Funktioniert meine Website noch normal?
Ja. Ihre Website, das WordPress-Dashboard, die Anmeldeseite und nahezu alle Plugins funktionieren wie gewohnt. Im Einzelnen:
- Jetpack und WordPress.com funktionieren weiterhin. Diese lassen wir immer durch.
- Die WordPress-App funktioniert, wenn Ihre Website über Jetpack verbunden ist. Klappt die Anmeldung in der App nicht mehr, geben Sie xmlrpc.php für Ihre eigene IP-Adresse frei (siehe unten).
- Pingbacks von anderen Websites kommen nicht mehr an. Für die meisten Websites ist das sogar angenehm, denn Pingbacks sind größtenteils Spam.
- Nutzen Sie ein externes Blogprogramm oder eine Anbindung, die xmlrpc.php benötigt? Dann geben Sie die Datei für die IP-Adresse dieses Programms oder Dienstes frei.
Sehen Sie bei xmlrpc.php die Meldung 403 Forbidden? Dann ist die Datei gesperrt und der Schutz funktioniert.
4. xmlrpc.php über DirectAdmin freigeben (empfohlen)
Das ist der einfachste Weg. Sie müssen keine Dateien bearbeiten.
- Melden Sie sich bei DirectAdmin an.
- Gehen Sie im Menü zu Extra Features (Zusatzfunktionen) und klicken Sie auf XML-RPC (WordPress).
- Wählen Sie oben rechts die Domain.
- Wählen Sie eine der drei Einstellungen:
- Gesperrt (empfohlen, Standard).
- Freigegeben für meine IP-Adressen: Tragen Sie eine IP-Adresse pro Zeile ein. Mit der Schaltfläche Hinzufügen übernehmen Sie direkt Ihre aktuelle IP-Adresse.
- Freigegeben für alle: nicht empfohlen, siehe Abschnitt 7. Sie müssen zuerst bestätigen, dass Sie die Risiken verstehen.
- Klicken Sie auf Speichern. Die Änderung ist innerhalb einer Minute aktiv.
Die Einstellung gilt für die gesamte Domain, auch für eine WordPress-Installation in einem Unterordner.
5. xmlrpc.php über .htaccess freigeben (manuell)
Arbeiten Sie lieber selbst in Ihren Dateien? Öffnen Sie dann über den Dateimanager (File Manager) in DirectAdmin oder per FTP die Datei .htaccess im Ordner public_html Ihrer Domain und setzen Sie die Regel ganz nach oben.
Freigabe für eine IP-Adresse
Ersetzen Sie 203.0.113.10 durch Ihre eigene IP-Adresse. Setzen Sie vor jeden Punkt einen Backslash:
SetEnvIf Remote_Addr "^203\.0\.113\.10$" !t7_xmlrpc_block
Mehrere IP-Adressen? Verwenden Sie dann eine Zeile pro Adresse. Eine IPv6-Adresse schreiben Sie so, wie sie ist, zum Beispiel:
SetEnvIf Remote_Addr "^2001:db8::10$" !t7_xmlrpc_block
Freigabe für alle (nicht empfohlen)
SetEnvIf Remote_Addr "." !t7_xmlrpc_block
Um die Datei wieder zu sperren, entfernen Sie die Regel einfach wieder.
6. Achtung: Verwenden Sie nicht "Require ip" oder "Require all granted
Im Internet finden Sie oft Beispiele wie <Files xmlrpc.php> Require ip ... </Files>. Verwenden Sie diese auf unseren Servern nicht. Auf unseren Servern gibt eine solche Regel xmlrpc.php nämlich für alle frei, nicht nur für die genannte IP-Adresse. Require all granted schaltet außerdem unseren zusätzlichen Schutz gegen bekannte Angriffsbots ab.
Verwenden Sie also immer die Regeln aus Abschnitt 5 oder die Schaltfläche in DirectAdmin.
7. Warum wir von "Freigegeben für alle" abraten
Ist xmlrpc.php für alle freigegeben, können Angreifer Tag und Nacht Passwörter auf Ihrer Website ausprobieren. Das erhöht das Risiko eines Einbruchs und macht Ihre Website langsamer. Hat der Dienst, den Sie nutzen, eine feste IP-Adresse? Dann geben Sie xmlrpc.php nur für diese Adresse frei. Wählen Sie "Freigegeben für alle" nur, wenn es wirklich nicht anders geht, und verwenden Sie dann auf jeden Fall:
- ein starkes, einzigartiges Passwort für jeden WordPress-Benutzer;
- die Zwei-Faktor-Authentifizierung für Administratoren.
8. Brauchen Sie Hilfe?
Kommen Sie nicht weiter, oder funktioniert etwas nicht mehr, seit xmlrpc.php gesperrt ist? Wenden Sie sich an unseren Support. Teilen Sie uns mit, um welche Domain und welches Programm oder welchen Dienst es geht. Dann richten wir xmlrpc.php gemeinsam mit Ihnen richtig ein.
Auf der Suche nach WordPress-Hosting? Unser Angebot ansehen.
0 von 0 fanden das hilfreich