Wie deaktiviere ich XML-RPC in WordPress?
Veröffentlicht: 2022-09-19Suchen Sie nach der Datei xmlrpc.php und wie Sie sie in WordPress deaktivieren können? Dieser Artikel erklärt, was xmlrpc.php ist und wie Sie es deaktivieren können.
Die Kommunikation mit WordPress von Anwendungen außerhalb der WordPress-Umgebung über die XML-RPC-Spezifikation ist möglich, indem eine Kommunikationsmethode zwischen Systemen standardisiert wird.
Seit ihrer Entstehung war diese Spezifikation für die WordPress-Community von großem Wert. Ohne sie wäre WordPress vom Rest des Internets isoliert gewesen.
Allerdings hat xmlrpc.php auch einige Nachteile. Die WP REST API ist zu einer wichtigen Komponente von WordPress geworden, seit Schwachstellen in der xmlrpc.php-Datei entdeckt wurden. Dies verbessert die Interaktion von WordPress mit anderen Softwareprogrammen erheblich.
Der Zweck dieses Artikels ist zu erklären, was xmlrpc.php ist, warum dies deaktiviert werden sollte und wie Sie es deaktivieren können.
Wir empfehlen Ihnen auch, unseren Artikel über die besten WordPress-Sicherheits-Plugins zu lesen.
Was ist die xmlrpc.php-Datei?
Das Ziel dieses Abschnitts ist die Beantwortung der Frage Was ist XML-RPC PHP? Die XML-RPC-Spezifikation kann verwendet werden, um zwischen WordPress und anderen Systemen zu kommunizieren.
Durch die Verwendung von HTTP als Transportprotokoll und XML als Verschlüsselungsprotokoll könnte XML-RPC die bei dieser Kommunikation verwendeten Protokolle standardisieren.
WordPress wurde 2003 von der b2-Blogging-Software abgezweigt, die XML-RPC als Schnittstelle verwendete. Eine Datei namens xmlrpc.php befindet sich im Stammverzeichnis des Systems und enthält den Code für diese Funktion. Diese Datei ist immer noch verfügbar, obwohl XML-RPC größtenteils veraltet ist.
In frühen Versionen von WordPress war es die Standardeinstellung, XML-RPC zu deaktivieren. Seit Version 3.5 ist es standardmäßig aktiviert, um die Kommunikation zwischen Ihrer mobilen WordPress-App und Ihrer WordPress-Installation zu unterstützen.
Vor der WordPress-Version 3.5 konnte die mobile WordPress-App nur dann Inhalte posten, wenn Ihre Website mit XML-RPC konfiguriert war. Dies wurde durch die Tatsache verursacht, dass die App WordPress nicht ausführte; Stattdessen kommunizierte es über xmlrpc.php mit Ihrer WordPress-Site.
Darüber hinaus wird XML-RPC für die Kommunikation zwischen WordPress und anderen Blogging-Plattformen sowie zwischen WordPress und der mobilen WordPress-App verwendet.
XML-RPC kann für Pingbacks und Trackbacks verwendet werden. Es diente auch als Backend für das Jetpack-Plugin, das es selbst gehosteten WordPress-Sites ermöglichte, Mitglieder von WordPress.com zu werden.
Da die REST-API jetzt in den WordPress-Kern integriert wurde, verwenden wir die Datei xmlrpc.php nicht mehr. Anstatt diese Datei zu verwenden, können Sie jetzt über die REST-API mit der mobilen App von WordPress, Desktop-Clients, dem Jetpack-Plug-in und anderen Systemen und Diensten kommunizieren.
Es ist auch möglich, die REST-API in eine breitere Palette von Systemen zu integrieren, und ihre Flexibilität ist größer als die von xmlrpc.php. Da XML-RPC durch REST-APIs ersetzt wurde, müssen Sie xmlrpc.php auf Ihrer Website deaktivieren, um Probleme zu vermeiden.
Warum sollten Sie XML-RPC deaktivieren?
Sie sollten sich darüber im Klaren sein, dass die xmlrpc.php-Datei die XML-RPC-aktivierte Schwachstelle Ihrer WordPress-Site für Hacker offenlegen kann, also müssen Sie sie deaktivieren.
Für die Kommunikation außerhalb von WordPress ist die Nutzung von XML-RPC nicht mehr notwendig. Wenn Sie Ihre Website so sicher wie möglich halten möchten, sollten Sie sie deaktivieren.
Aus diesem Grund wird WordPress immer abwärtskompatibel sein. Sie sollten die mit WordPress-Websites verbundenen WordPress-Plugins und -Themes ständig aktualisieren, wenn Sie dafür verantwortlich sind.
Wenn XML-RPC auf Ihrer Website aktiviert ist, kann ein Hacker es als Werkzeug verwenden, um einen DDoS-Angriff auf Ihre Website zu starten. Sie können das xmlrpc.php-Modul verwenden, um viele Pingbacks zu Ihrer Website zu generieren, was den Server überlasten und zum Absturz der Website führen kann.
Darüber hinaus sendet xmlrpc.php mit jeder Anfrage auch Authentifizierungsinformationen, sodass Hacker diese Informationen möglicherweise abfangen und verwenden können, um zu versuchen, auf Ihre Website zuzugreifen. Dieser Brute-Force-Angriff kann es Hackern ermöglichen, bösartigen Code auszuführen, Code zu löschen und sogar Ihre Datenbank zu beschädigen.
Wie überprüfe ich, ob XML-RPC aktiviert ist?
Bitte klicken Sie auf den folgenden Link, um auf die Website zuzugreifen: WordPress XML-RPC Validation Service.
Nachdem Sie Ihren Domainnamen eingegeben haben, klicken Sie auf die Schaltfläche Prüfen.
Wenn der Test erfolgreich war, wird nun XML-RPC aktiviert, das sofort deaktiviert werden sollte.
Deaktivieren Sie XMLRPC mit WordPress-Plugins
Aus verschiedenen Gründen möchten Websitebesitzer möglicherweise die XMLRPC-Funktionalität deaktivieren. Dazu können Sie verschiedene Plugins verwenden, z. B. XML-RPC deaktivieren.
Deaktivieren Sie XMLRPC mit dem Plug-in zum Deaktivieren von XML-RPC
Wir erklären, wie Sie das Disable XML-RPC Plugin verwenden, um die XMLRPC-Funktionalität zu deaktivieren. Bitte melden Sie sich in Ihrem WordPress-Administrationsbereich an.
1. Klicken Sie auf Plugins und dann auf Neu hinzufügen.
2. Geben Sie „XML-RPC deaktivieren“ in das Suchfeld ein. Installieren Sie danach das Plugin Disable XML-RPC.
3. Aktivieren Sie das Plugin und Sie können loslegen. Dann wird der XML-RPC deaktiviert.
In diesem Plugin finden Sie einen XML-RPC-Validator, mit dem überprüft werden kann, ob XML-RPC deaktiviert wurde. Falls XML-RPC deaktiviert wurde, wird eine Fehlermeldung angezeigt. Wenn nicht, können Sie es mit diesem Plugin deaktivieren.
Konfigurieren Sie die XML-RPC- und REST-API-Aktivierung mit einem Plugin
Mit dem Plugin REST XML-RPC Data Checker können Sie die REST-API und die xmlrpc.php auf Ihrer Website feinkörniger konfigurieren.
Nachdem Sie das Plugin installiert und aktiviert haben, klicken Sie auf die Registerkarte XML-RPC, nachdem Sie in den Einstellungen auf die Registerkarte REST XML-RPC Data Checker geklickt haben.
Über das Plugin können Sie genau angeben, welche Funktionen von xmlrpc.php auf Ihrer Website aktiviert sind. Es ist auch möglich, es vollständig zu deaktivieren. Es gibt auch eine Registerkarte im Plugin, mit der Sie die REST-API steuern können, wenn Sie dies wünschen.
XMLRPC ohne Plugin deaktivieren
Wenn Sie es vorziehen, kein weiteres Plugin zu Ihrer Website hinzuzufügen, können Sie xmlrpc.php mit einem Filter oder Ihrer .htaccess-Datei deaktivieren. Betrachten wir beide Optionen zusammen.
Deaktivieren Sie xmlrpc.php über einen Filter
Durch die Verwendung des Filters xmlrpc_enabled ist es sehr einfach, die xmlrpc.php zu deaktivieren. Sie sollten diese Funktion hinzufügen und auf Ihrer Website aktivieren:
add_filter( 'xmlrpc_enabled', '__return_false' );
Die Funktion könnte der Funktionsdatei des Themas hinzugefügt werden. Eine .htaccess-Datei kann auch mit cPanel oder FTP bearbeitet werden, je nachdem, ob Sie über Apache mit einem Hosting-Provider verbunden sind.
Die Funktion __return_false von WordPress gibt die boolesche Bedingung false zurück. Dieser Filter blockiert nur Vorgänge, die einen angemeldeten Benutzer erfordern.
Es muss von allen Methoden abgemeldet werden, um alle Operationen des XMLRPC-Servers zu deaktivieren. Um dies zu erreichen, müssen Sie sich in den xmlrpc_methods-Filter einklinken.
add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }
Die Datei xmlrpc.php erstellt ein Objekt der Klasse wp_xmlrpc_server, wenn eine Anfrage gestellt wird. Im Ordner „wp-includes“ befindet sich eine Klassendatei, die eine Eigenschaft namens „methods“ enthält.
Die Eigenschaft methods enthält ein Array von Namen von Funktionen, auf die über XML-RPC-Anforderungen zugegriffen werden kann.
Die Funktion wird mit einer Fehlermeldung zurückgegeben, wenn sie nicht in diesem Array enthalten ist. Wenn Sie also das Array leeren, können Sie sicher sein, dass Sie keine Funktionen verwenden können.
Deaktivieren Sie XML-RPC mit .htaccess
Das Deaktivieren des XML-RPC mit .htaccess umfasst ein paar einfache Schritte. So können Sie xmlrpc.php .htaccess deaktivieren:
- Sie können FTP oder den Dateimanager verwenden, um zum Stammverzeichnis Ihrer Website zu navigieren.
- Sie sollten die .htaccess-Datei öffnen.
- Sie müssen Ihrer .htaccess-Datei den folgenden Code hinzufügen:
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>
xxx.xxx.xxx.xxx kann durch die IP-Adresse ersetzt werden, der Sie Zugriff auf xmlrpc.php gewähren möchten. Wenn Sie xmlrpc.php vollständig aus WordPress entfernen möchten, können Sie diese Zeile entfernen.
Deaktivieren Sie XMLRPC in Apache/Nginx
Das Deaktivieren von XMLRPC in Apache/Nginx kann ebenfalls ein einfacher Vorgang sein. Der folgende Code sollte der Apache-Konfigurationsdatei hinzugefügt werden, um xmlrpc.php zu deaktivieren:
< VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >
Mit dem folgenden Code in der Nginx-Konfigurationsdatei können Sie xmlrpc.php deaktivieren:
server { ----------- location /xmlrpc.php { deny all; } }
Wie suchen und finden Sie XML-RPC-Angriffe in verschiedenen Linux-Distributionen?
Wenn Sie in verschiedenen Linux-Distributionen nach XML-RPC-Angriffen suchen, können Sie die folgenden Befehle verwenden, um xmlrpc.php-Angriffe zu stoppen:
Ein CentOS-Server mit installiertem Apache:
# grep xmlrpc /var/logs/httpd/access.log
Mit Apache auf Ubuntu:
# grep xmlrpc /var/logs/apache2/access.log
Für Nginx-basierte Server:
# grep xmlrpc /var/logs/nginx/access.log
Für cPanel-basierte Server:
# grep xmlrpc /home/username/logs/access.log
Sie würden die folgende Ausgabe erhalten, wenn die vorherigen Befehle auf einer angegriffenen WordPress-Site ausgeführt würden:
POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)
Wann die XML-RPC.php-Datei aktiviert bleiben soll
Es gibt einige Situationen, in denen es vorteilhaft wäre, XML-RPC zu aktivieren, und dies sind einige davon:
- Wenn die REST-API nicht verfügbar ist, wenn Sie eine alte Website haben, die aus irgendeinem Grund nicht auf Version 4.4 oder höher aktualisiert werden kann.
- Ein Programm kann nicht auf die REST-API auf der Website zugreifen, die Sie verwenden, um mit ihm zu kommunizieren.
- Um einige Anwendungen von Drittanbietern zu integrieren, die XML-RPC benötigen, um zu funktionieren.
Es sollte jedoch beachtet werden, dass keiner der oben genannten Kritikpunkte ein ausreichender Grund dafür ist, weiterhin XML-RPC und xmlrpc.php-Exploit zu verwenden.
Der einzige Grund, warum WordPress es hat, ist, dass es abwärtskompatibel ist; Daher sollten Sie es nur verwenden, wenn Sie eine veraltete Version von WordPress verwenden.
Für diejenigen, die ihre Website auf dem neuesten Stand halten und die neueste Softwareversion unterstützen möchten, sollte xmlrpc.php deaktiviert werden.
Testen der XML-RPC-Funktionalität in WordPress
Darüber hinaus können Sie die WordPress-Testoption verwenden, um zu überprüfen, ob Ihre Website erfolgreich für den Empfang von XML-RPC-Anforderungen deaktiviert wurde.
Zu diesem Zweck können Sie die WordPress Mobile App auf Ihr Telefon herunterladen. Es sind Android- und iPhone-Versionen dieser Anwendung verfügbar. Nachdem Sie die App auf Ihrem Gerät installiert haben, tippen Sie auf Geben Sie Ihre bestehende Site-Adresse ein, um sie zu verwenden.
Sie sind fertig, wenn Sie die Fehlermeldung sehen, dass XML-RPC-Dienste auf dieser Site deaktiviert sind. Dies ist eine WordPress xmlrpc.php 403 verbotene Nachricht.
Fazit
Die XML-RPC-Spezifikation wurde vor der Erstellung von WordPress entwickelt, um die Kommunikation mit externen Anwendungen und Systemen zu ermöglichen. In dieser Spezifikation gibt es mehrere Sicherheitslücken, die Ihre Website anfällig für Angriffe machen könnten.
Die REST-API ermöglicht Ihrer Website die Kommunikation mit anderen Programmen, wodurch xmlrpc.php ohne Bedenken deaktiviert werden kann. Wenn Sie die Sicherheit Ihrer Website erhöhen möchten, befolgen Sie dazu die genannten Schritte.