En explorant les fichiers de votre installation WordPress, vous avez peut-être remarqué un fichier nommé xmlrpc.php à la racine. Pour de nombreux utilisateurs, son nom est aussi mystérieux que sa fonction. Pourtant, ce fichier a joué un rôle crucial dans l’histoire de WordPress, agissant comme une porte d’entrée pour permettre à des applications externes de communiquer avec votre site. Cependant, à l’ère des technologies modernes, cette porte autrefois utile est devenue une source majeure de problèmes de sécurité. En effet, comprendre ce qu’est XML-RPC et pourquoi il est aujourd’hui largement obsolète est essentiel pour sécuriser et optimiser votre site.
XML-RPC : Le précurseur des API modernes
Pour comprendre XML-RPC, il faut remonter dans le temps, à une époque où les smartphones n’existaient pas et où les connexions internet étaient lentes. XML-RPC (Remote Procedure Call over XML) est un protocole qui permet à des applications de communiquer entre elles sur Internet en utilisant le format XML.
Dans le contexte de WordPress, le fichier xmlrpc.php a été créé pour une raison très simple : permettre de gérer son site à distance. Grâce à lui, vous pouviez :
- Publier des articles depuis des applications de bureau : Avant l’avènement des éditeurs web performants, de nombreux blogueurs écrivaient leurs articles hors ligne sur des logiciels dédiés, puis utilisaient XML-RPC pour les publier.
- Utiliser l’application mobile WordPress : Les premières versions de l’application mobile WordPress dépendaient entièrement de XML-RPC pour se connecter à votre site, vous permettant de modérer des commentaires ou de publier des articles depuis votre téléphone.
- Créer des "trackbacks" et des "pingbacks" : Ce sont des notifications automatiques (aujourd’hui largement tombées en désuétude) qui se créent lorsqu’un autre site fait un lien vers le vôtre.
En bref, xmlrpc.php était l’API (Application Programming Interface) de WordPress avant l’heure. Il a ouvert la voie à un WordPress plus connecté et plus accessible.
Le problème : L’obsolescence et les failles de sécurité
Le monde de la technologie a évolué, mais XML-RPC, lui, est resté figé dans le temps. Aujourd’hui, WordPress dispose d’une API bien plus moderne, plus sécurisée et plus performante : l’API REST. Cette nouvelle API a rendu XML-RPC complètement obsolète pour la quasi-totalité des usages modernes, y compris pour les versions récentes de l’application mobile.
Le vrai problème est que, bien qu’obsolète, xmlrpc.php est toujours présent et activé par défaut sur les installations WordPress. Et c’est une aubaine pour les pirates. Ce fichier est devenu l’une des cibles privilégiées des attaques pour deux raisons principales :
- Les attaques par force brute : Un pirate peut utiliser la fonction XML-RPC pour essayer des milliers de combinaisons de noms d’utilisateur et de mots de passe en une seule requête, ce qui lui permet de contourner les outils de sécurité qui bloquent les tentatives de connexion échouées sur la page de connexion classique.
- Les attaques par déni de service (DDoS) : En utilisant la fonctionnalité de pingback, les pirates peuvent forcer des milliers de sites WordPress à envoyer simultanément des requêtes vers un seul site cible, le submergeant de trafic jusqu’à le rendre inaccessible.

Comment vérifier si XML-RPC est actif et le désactiver ?
La première étape est de vérifier si le fichier est accessible sur votre site. Pour cela, vous pouvez utiliser un outil en ligne comme "XML-RPC Validator". Entrez simplement l’URL de votre site. S’il renvoie un message d’erreur, c’est une bonne chose. S’il renvoie un message de succès, cela signifie que le fichier est actif et potentiellement vulnérable.
Heureusement, désactiver XML-RPC est très simple.
Méthode 1 : Utiliser un plugin de sécurité (Recommandé)
La plupart des grands plugins de sécurité comme Wordfence ou Sucuri incluent une option en un clic pour désactiver complètement XML-RPC. C’est la méthode la plus simple et la plus sûre pour les non-développeurs.
Méthode 2 : Ajouter un filtre de code
Si vous ne souhaitez pas ajouter un plugin, vous pouvez ajouter une simple ligne de code au fichier functions.php de votre thème (idéalement un thème enfant) ou via un plugin comme "Code Snippets".
add_filter('xmlrpc_enabled', '__return_false');
Méthode 3 : Bloquer l’accès via .htaccess
Pour une protection au niveau du serveur, vous pouvez bloquer toutes les requêtes vers le fichier xmlrpc.php en ajoutant le code suivant au début de votre fichier .htaccess. C’est une méthode très efficace, souvent mise en place sur les hébergements web sécurisés comme ceux de Tswan Hosting.
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
En conclusion, XML-RPC est un vestige du passé de WordPress. Bien qu’il ait été utile en son temps, il représente aujourd’hui un risque de sécurité inutile pour la quasi-totalité des sites. Le désactiver est une étape de maintenance simple mais essentielle pour renforcer la sécurité de votre site. Des équipes techniques comme celles de Tswan Softwares considèrent cette désactivation comme une étape obligatoire dans leur checklist de sécurisation.
