Pourquoi et comment désactiver XML-RPC sur votre site WordPress?

Si vous utilisez WordPress, et tous ceux qui ont déjà regardé la liste des fichiers de base le savent, il existe à la racine de votre site un fichier nommé `xmlrpc.php`. XML-RPC est un script qui a été utilisé par WordPress dès les premières versions et depuis la version 3.5, il a été activé par défaut.

Comment et pourquoi désactiver XML-RPC

XML-RPC est un protocole qui permet de se connecter à des sites distants pour échanger des données, entrantes et sortantes. Actuellement, il peut prendre en charge l’API de plusieurs CMS comme l’API de WordPress, de Blogger, de Movable, de Pingback ou l’API de MetaWeblog.

En général, nous utilisons le protocole XML-RPC lorsque nous créons un article à partir d’une application externe comme Windows Live Writer, ou pour des services connectés, comme IFTTT.

Plusieurs applications populaires et certains plugin font usage d’une partie de XML-RPC, parmi lesquelles:

  • WordPress Mobile App
  • JetPack (uniquement certaines parties)
  • BuddyPress
  • Windows Live Writer
  • Certains plugin de galerie photos

Cependant, la popularité de `xml-rpc.php` dans WordPress augmente le risque d’attaques par force brute pour essayer de détecter le mot de passe. Pour attaquer un site, le pirate envoie un grand nombre de requêtes vers le serveur et le paralyse. Cette forme d’attaque est appelé Attaque HTTP Flood, un type d’attaque DDoS (Déni de Service).

Ceci étant dit, si vous n’avez pas réellement besoin de vous connecter à WordPress ou à des applications externes, désactivez XML-RPC pour éviter toute attaque par ce biais.

Comment savoir si votre site WordPress a été piraté

Une façon simple de savoir si votre site a été piraté a l’aide du protocole XML-RPC, est d’ouvrir le fichier access_log situé sur votre compte d’hébergement. Si vous voyez un nombre très élevé de visiteurs, votre site est attaqué via XML-RPC.

Limiter les attaques via XMLRPC

Pour limiter les attaque faites par le biais du protocole XML-RPC, un moyen simple et d’empêcher les fichiers d’être exécutés. Notez que vous ne devez en aucun cas effacer le fichier xmlrpc.php, car il fait partie intégrante du code source WordPress. Cela peut provoquer des erreurs, et de toute façon lors de la prochaine mise à jour de version, il réapparaîtra.

Par conséquent, le blocage est la manière la plus efficace.

Désactiver XML-RPC

Si vous n’utilisez pas du tout XML-RPC, la meilleure chose à faire est de le désactiver. Il existe un plugin, nommé Eazy XMLRPC Pingback Disable ( qui peut le faire à votre place.

 

Voici quelques-uns des plugin de la même catégorie disponibles sur WordPress.org

  • Prevent XMLRPC
  • Disable XML-RPC
  • Disable XML RPC Fully
  • Secure XML-RPC
  • etc.

Attention toutefois, ces plugin peuvent provoquer des conflits avec des applications externes ou avec d’autres plugin.

Vous pouvez également désactiver XML-RPC par vous même, de différentes façons.

Bloquer xmlrpc.php avec wp-config.php

Vous pouvez ajouter un filtre à la fin du fichier `wp-config.php`. Ce filtre désactivera complètement XML-RPC. Plusieurs tests sur plusieurs sites n’ont révélé aucun problème. Le code ci-dessous doit-être ajouté après la dernière instruction `ABSPATH`:

add_filter('xmlrpc_enabled', '__return_false');

Bloquer xmlrpc.php avec .htaccess

Ajoutez ces quelques ligne de code à un plugin spécifique à votre site ou au fichier `functions.php` de votre thème:

add_action("init", function() { 
global $pagenow; // get current page
if ( !empty($pagenow) && "xmlrpc.php" === $pagenow ) {
header("HTTP/1.1 403 Forbidden" ); // Produit une erreur 403
exit; // exit request
} return;
});

Contrôler xmlrpc.php avec iThemes Security

Si vous n’êtes pas à l’aise avec les méthodes ci-dessus, le plugin de sécurité iThemes Security vous permet de totalement bloquer l’accès à `xmlrpc.php` en un clic de souris.

sécuriser votre site WordPress

Ce plugin de sécurité est quasiment obligatoire pour les sites WordPress. Si vous ne l’avez pas installé, et que vous n’avez pas de plugin de sécurité, je vous suggère de télécharger et d’installer immédiatement iThemes Security.

Comment et pourquoi désactiver XML-RPC
Blocage de XML-RPC dans iThemes Security

 

Conclusion

À mon avis, le protocole XML-RPC inclus dans WordPress est un outil très utile, mais il est temps de passer à l’API de WordPress. Etant donné que je n’utilise pas d’application mobile ou de connexion à distance pour publier des articles sur Bloginfos, XML-RPC est totalement désactivé sur le site. Alors si vous songiez faire le test, ne perdez pas de temps!

Quelle est votre point de vue sur la question? Avez-vous bloqué XML-RPC sur votre site WordPress ou l’utilisez vous avec des applications externes? Expliquez nous votre choix et développez votre point de vue dans les commentaires ci-dessous.

séparateur de texte

Si cet article vous a été utile, Merci de la partager!

Publié à l'origine le : 31 octobre 2016 @ 14 h 21 min

Pour compléter votre lecture.