WordPress XML-RPC aanvallen voorkomen (complete uitleg)
Wat is XML-RPC in WordPress?
XML-RPC is een standaard API binnen WordPress die al sinds WordPress 3.5 (11 december 2012) standaard is ingeschakeld. Deze interface maakt het mogelijk om via XML en HTTP(S) verbinding te maken met een WordPress website en deze op afstand te beheren.
Met XML-RPC kunnen ontwikkelaars en externe applicaties, zoals mobiele apps of externe publicatie-tools, communiceren met je website. Denk bijvoorbeeld aan het aanmaken of bewerken van berichten en pagina’s zonder direct in te loggen op het WordPress-dashboard.
Waarom is XML-RPC een beveiligingsrisico?
Hoewel XML-RPC handige functies biedt, kan het ook misbruikt worden door hackers. Aanvallers gebruiken het bestand xmlrpc.php soms om:
- DDoS-aanvallen uit te voeren door enorme hoeveelheden verzoeken te versturen
- Inlogpogingen te automatiseren (brute force attacks)
- Serverresources te overbelasten waardoor je website traag of onbereikbaar wordt
Dit soort misbruik wordt vaak een XML-RPC aanval genoemd.
XML-RPC aanvallen voorkomen in WordPress
Er zijn verschillende manieren om je WordPress website te beschermen tegen misbruik van XML-RPC.
1. Gebruik een Web Application Firewall (WAF)
Een effectieve manier om XML-RPC aanvallen te beperken is het gebruik van een Web Application Firewall (WAF), zoals ModSecurity Comodo WAF.
Deze firewall kan:
- Het aantal verzoeken naar
xmlrpc.phpbeperken - Verdachte IP-adressen automatisch blokkeren
- DDoS- en brute force-aanvallen vroegtijdig tegenhouden
Veel hostingproviders hebben deze beveiliging standaard actief op hun servers.
2. XML-RPC volledig uitschakelen
Gebruik je geen externe apps of diensten die XML-RPC nodig hebben? Dan is het verstandig om deze functie volledig uit te schakelen.
Er zijn twee manieren om dit te doen:
Optie 1: XML-RPC blokkeren via .htaccess (Apache servers)
Voeg de volgende regels toe in het .htaccess bestand in de root van je website (bijvoorbeeld in public_html of private_html):
# Block XML-RPC requests
<Files xmlrpc.php>
Require all denied
</Files>
Plaats deze code boven # BEGIN WordPress of onder # END WordPress.
Optie 2: XML-RPC uitschakelen via functions.php
Je kunt XML-RPC ook uitschakelen via het actieve thema door de volgende code toe te voegen aan functions.php:
/**
* Disable XML-RPC
*/
add_filter( 'xmlrpc_enabled', '__return_false' );
Controleren of XML-RPC is uitgeschakeld
Na het toepassen van de instellingen kun je testen of XML-RPC is geblokkeerd door deze URL te bezoeken:
http://www.jouwdomein.nl/xmlrpc.php
Als de beveiliging correct werkt, krijg je een foutmelding of een geblokkeerde toegang te zien.
Samenvatting
XML-RPC kan handig zijn voor externe koppelingen met WordPress, maar vormt ook een potentieel beveiligingsrisico. Door het gebruik van een firewall of het volledig uitschakelen van XML-RPC kun je jouw website beter beschermen tegen aanvallen.