xmlrpc.php in WordPress: wat is het en waarom zou je het uitschakelen

WordPress heeft altijd al functies gehad waarmee je op afstand met je site kunt communiceren. Lange tijd werd dit opgelost met een bestand xmlrpc.php genaamd. De laatste jaren is het bestand echter meer een probleem dan een oplossing geworden.
In dit artikel kijken we naar wat xmlrpc.php is en waarom het ooit werd gebruikt. We bespreken ook de meest voorkomende beveiligingsproblemen die het met zich meebrengt en hoe je deze op je eigen WordPress-website kunt aanpakken.
Wat is xmlrpc.php in WordPress?
XML-RPC is een functie van WordPress waarmee gegevens kunnen worden verzonden, met HTTP als transportmechanisme en XML als codering mechanisme. Omdat WordPress geen gesloten systeem is en soms met andere platforms moet communiceren, werd XML-RPC hiervoor gebruikt.
De belangrijkste functies die xmlrpc.php mogelijk maakte waren, de verbinding met je site via smartphone, de implementatie van trackbacks en pingbacks van andere sites en enkele functies die te maken hebben met de Jetpack-plug-in.
Stel dat je een bericht vanaf je mobiele apparaat wilde plaatsen, dan kon je met xmlrpc.php op afstand op je WordPress-website inloggen en dit eenvoudig regelen.
Waarom werd xmlrpc.php gemaakt en hoe werd het gebruikt?
Het gebruik van XML-RPC gaat terug tot de begindagen van WordPress, nog voordat het WordPress heette.
In het begin van het internet, toen de verbindingen ongelooflijk traag waren, was schrijven en publiceren op het internet veel moeilijker en tijdrovender. De oplossing was toen het maken van een offline blogclient, waar je je inhoud kon samenstellen voordat je verbinding met je blog maakte om het te publiceren. Deze verbinding werd met behulp van XML-RPC tot stand gebracht.
Aanvankelijk stond XML-RPC standaard uit, maar met WordPress 2.6 kwam er een optie in het dashboard om deze handmatig aan of uit te zetten. Vanaf WordPress 3.5 werd XML-RPC echter standaard ingeschakeld, mede door de introductie van de mobiele WordPress-app. Tegelijkertijd verdween de optie om XML-RPC via het dashboard te beheren.
XML-RPC vandaag de dag
In 2015 heeft WordPress core een nieuwe REST API geïntroduceerd voor interacties met mobiele applicaties en andere platforms. Veel ontwikkelaars zijn in plaats daarvan de nieuwe REST API gaan gebruiken, die XML-RPC in feite heeft vervangen.
XML-RPC is echter nog steeds ingeschakeld in WordPress en het xmlrpc.php bestand staat nog steeds in de core software directory.
XML-RPC staat standaard ingeschakeld in WordPress, en het bestand xmlrpc.php is nog steeds onderdeel van de kern software
Leestip
Lees meer over WordPress REST API en hoe je deze kunt gaan gebruiken bij het ontwikkelen van WordPress.
Waarom je xmlrpc.php moet uitschakelen
Het grootste probleem met XML-RPC is de beveliging. Het probleem ligt niet bij XML-RPC op zich, maar bij de manier waarop het bestand kan worden misbruikt om cyberaanvallen op jouw site uit te voeren.
Ten eerste gebruiken hackers brute-force aanvallen om toegang tot jouw site te krijgen. Een hacker probeert via xmlrpc.php toegang te krijgen tot je site door verschillende combinaties van gebruikersnaam en wachtwoord te gebruiken. Ze kunnen met één commando honderden verschillende wachtwoorden testen, waarmee ze beveiligingstools die brute-force aanvallen detecteren en blokkeren, kunnen omzeilen.
DDoS-aanvallen zijn een andere bedreiging. Hackers kunnen de pingback-functie van WordPress misbruiken om in één keer pingbacks naar duizenden websites te sturen. Door deze functie in xmlrpc.php krijgen ze toegang tot een enorme reeks IP-adressen, waarmee ze eenvoudig een DDoS-aanval kunnen uitvoeren en websites offline kunnen halen.
Pro tip
Verschillende bedreigingen vormen een risico voor de veiligheid van je website. Je kunt je website beschermen tegen mogelijke kwetsbaarheden door een betrouwbare WordPress hosting provider beschermen tegen mogelijke kwetsbaarheden door een betrouwbare WordPress hosting provider te kiezen. Bescherm je website door een veilige WordPress host te kiezen, die geavanceerde beveiligingsmaatregelen gebruikt.
Je kunt jezelf dus niet alleen beveiligen met sterke wachtwoorden en WordPress beveiliging plug-ins, maar je kunt xmlrpc.php het beste uitschakelen.
Als je wilt controleren of XML-RPC op je site wordt uitgevoerd, kun je het programma XML-RPC Validator gebruiken. Als je een foutmelding krijgt, betekent dit dat XML-RPC niet is ingeschakeld. Maar als je een ‘succesvolle melding’ krijgt, is het ten zeerste aanbevolen om xmlrpc.php uit te schakelen.
Zo schakel je xmlrpc.php in WordPress uit
Laten we eens kijken naar de twee manieren waarop je xmlrpc.php in WordPress kunt uitschakelen.
1. xmlrpc.php met een plug-in uitschakelen
Je kunt XML-RPC op je WordPress site eenvoudig met een plug-in uitschakelen.
Ga in je WordPress dashboard naar het menu Plug-ins → Nieuwe toevoegen. Zoek naar Disable XML-RPC-API en installeer het. Zodra je de plug-in activeert, wordt XML-RPC automatisch uitgeschakeld. Houd er wel rekening mee dat andere aanwezige plug-ins onderdelen van XML-RPC kunnen gebruiken, dus het volledig uitschakelen van XML-RPC kan een plug-in conflict veroorzaken, of ervoor zorgen dat bepaalde elementen van je site niet meer werken.
2. xmlrpc.php handmatig uitschakelen
Als je xmlrpc.php liever handmatig verwijdert, kun je de volgende methode gebruiken om alle inkomende xmlrpc.php-verzoeken te blokkeren, voordat ze WordPress bereiken.
Ga naar je .htaccess-bestand via Bestandsbeheer van je hosting controlepaneel of een FTP-client. Het kan zijn dat je de optie Verborgen bestanden weergeven moet aanzetten om dit bestand zichtbaar te maken. Plak je de volgende code in je .htaccess-bestand:
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</Files>
Belangrijk! Verander xxx.xxx.xxx.xxx in het IP-adres dat je toegang wilt geven tot xmlrpc.php of verwijder deze regel helemaal.
Conclusie
XML-RPC was ooit een solide hulpmiddel voor het publiceren op afstand op je WordPress site. Helaas bevatte het een aantal beveiligingslekken die voor sommige eigenaren van WordPress sites behoorlijk schadelijk zijn gebleken.
Om er zeker van te zijn dat je site veilig blijft, is het ten zeerste aanbevolen om xmlrpc.php volledig uit te schakelen. Gebruik hiervoor een plug-in of bewerk het .htaccess-bestand handmatig.