De XML-RPC-specificatie van WordPress werd ontwikkeld om de communicatie tussen verschillende systemen te standaardiseren. Daardoor kunnen externe toepassingen, zoals andere blogplatformen en desktopclients, met WordPress communiceren en ermee samenwerken.
Deze functionaliteit maakt al sinds het prille begin deel uit van WordPress en was lange tijd erg waardevol. Zonder XML-RPC zou WordPress veel meer een afgesloten systeem zijn geweest, los van andere internettoepassingen.
Toch heeft xmlrpc.php ook keerzijdes. Het kan beveiligingsrisico’s met zich meebrengen voor je WordPress-website en is vandaag grotendeels achterhaald. De moderne WordPress REST API neemt deze rol over en biedt een veiligere en flexibelere manier om WordPress te koppelen aan andere toepassingen.
Wat is xmlrpc.php?
XML-RPC is een techniek die communicatie mogelijk maakt tussen WordPress en andere systemen. Die communicatie wordt gestandaardiseerd via HTTP als transport en XML als gegevensformaat. Zo kunnen externe toepassingen met WordPress praten zonder dat ze rechtstreeks in de website zelf draaien.
XML-RPC is zelfs ouder dan WordPress. Het maakte al deel uit van de b2-blogsoftware, waaruit WordPress in 2003 is ontstaan. De bijhorende code zit in het bestand xmlrpc.php, dat zich in de hoofdmap van je WordPress-website bevindt. Hoewel dit bestand vandaag nog steeds aanwezig is, is de technologie ondertussen grotendeels verouderd.
XML-RPC en WordPress
In oudere versies van WordPress stond XML-RPC standaard uitgeschakeld. Dat veranderde vanaf WordPress 3.5, voornamelijk om communicatie met de mobiele WordPress-app mogelijk te maken.
Wie de mobiele app gebruikte vóór versie 3.5, moest XML-RPC handmatig inschakelen om berichten te kunnen publiceren. Dat kwam doordat de app niet binnen WordPress draaide, maar als aparte toepassing via xmlrpc.php met de website communiceerde.
Naast de mobiele app werd XML-RPC ook gebruikt voor:
Communicatie met andere blogplatforms
Trackbacks en pingbacks
De koppeling tussen een zelf-gehoste WordPress-site en WordPress.com via de Jetpack-plugin
Waarom xmlrpc.php niet langer nodig is
Sinds de WordPress REST API standaard werd geïntegreerd in de WordPress-kern, is XML-RPC in de praktijk overbodig geworden. De REST API heeft dezelfde taken overgenomen en wordt vandaag gebruikt voor:
De mobiele WordPress-app
Desktopclients
Andere blogplatforms
WordPress.com en Jetpack
Externe systemen en diensten
De REST API ondersteunt meer systemen, is flexibeler en vooral: veiliger.
Waarom xmlrpc.php beter uitschakelen?
De belangrijkste reden om xmlrpc.php uit te schakelen, is beveiliging. Het bestand wordt vaak misbruikt bij aanvallen, zoals brute force-aanvallen en DDoS-aanvallen, en vormt daardoor een onnodig risico voor je WordPress-website.
Aangezien XML-RPC niet meer nodig is voor moderne WordPress-functionaliteit, is het verstandig om het bestand uit te schakelen en zo het aanvalsoppervlak van je website te verkleinen.
Waarom zit xmlrpc.php dan nog steeds in WordPress?
WordPress hecht veel belang aan achterwaartse compatibiliteit. Dat betekent dat oudere systemen en installaties blijven werken, zelfs als ze niet geüpdatet zijn.
Er zijn nog steeds websites die draaien op oudere WordPress-versies zonder REST API. Voor die installaties is XML-RPC nog noodzakelijk. Daarom blijft het bestand standaard aanwezig, ook al is het voor de meeste moderne websites niet meer nodig.
MDWX blokkeert standaard XML-RPC. |