Comment désactiver XML-RPC pour sécuriser votre site WordPress ? Avant de répondre à cette question, voyons à quoi sert ce protocole. Le protocole XML-RPC (abréviation de « Extensible Markup Language Remote Procedure Call) est une spécification qui permet la communication entre WordPress et d’autres systèmes.
Le XML-PRC a été très utile avec WordPress pour nous permettre d'écrire du contenu en offline.
Le protocole XML-RPC est une fonction de WordPress. Son code est stocké dans un fichier appelé xmlrpc.php, dans le répertoire racine de ton site. Depuis la version 3.5 de WordPress, le XML-RPC est activé par défaut.
Ce protocole est utilisé pour :
Mais depuis que l’API REST a été intégrée dans le noyau de WordPress (depuis la version 4.4), le fichier xmlrpc.php n’est plus utilisé pour cette communication.
La principale raison pour laquelle vous devriez désactiver le xmlrpc.php sur votre site WordPress est qu’il introduit des vulnérabilités de sécurité et peut être la cible d’attaques.
Désormais, le XML-RPC n’est plus nécessaire pour communiquer en dehors de WordPress, il n’y a plus de raison de le maintenir actif. C’est pourquoi il est judicieux pour sécuriser votre site WordPress de le désactiver.
De plus, utiliser ce protocole peut entrainer différentes vulnérabilités :
Attaques DDoS via les pingbacks XML-RPC : en envoyant un grand nombre de pingbacks sur ton site en peu de temps. Cela pourrait surcharger ton serveur et rendre ton site hors service.
Alors dois-tu désactiver XML-RPC pour sécuriser ton site WordPress ? La réponse est OUI ! ( sauf les cas très particuliers vus auparavant).
Pour cela, rien de bien compliqué, utilise le service de validation XML-RPC de WordPress :
https://xmlrpc.eritreo.it/
Tu peux également vérifier à cette adresse : http://tondomaine/xmlrpc.php et entre ton nom de domaine à la place de "tondomaine" et si tu as un de ces messages « Access forbidden! » ou« 403 error » c'est que XML-RPC est désactivé.
Il ne s’agit pas simplement de vérifier si le fichier est là : il fait partie de chaque installation de WordPress et sera présent même si XML-RPC est désactivé !
Il y a trois façons de désactiver le xmlrpc.php :
Pour désactiver XML-RPC pour sécuriser ton site WordPress, tu peux utiliser par exemple le plugin Disable XML-RPC-API .
Il te suffit juste d'ajouter cette extension et de l'activer, puis de vérifier que tu as bien le message « Access forbidden! » ou« 403 error » en accédant à http://tondomaine/xmlrpc.php
Si tu veux avoir un contrôle plus précis de la configuration du xmlrpc.php et de l’API REST sur ton site, installe l'extension REST XML-RPC Data Checker, puis va dans "Réglages > REST XML-RPC Data Checker et cliquez sur l’onglet XML-RPC".
Pour désactiver XML-RPC pour sécuriser ton site WordPress, tu peux également le faire sans installer d'extension, juste en modifiant ton fichier .htaccess (fichier caché à la racine de ton site WordPress). Pense à effectuer un backup de ce fichier avant de le modifier.
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
Certains hébergeurs désactiveront le xmlrpc.php si une attaque est détectée.