Comment désactiver XML-RPC dans WordPress ?

Publié: 2022-09-19

Recherchez-vous le fichier xmlrpc.php et comment le désactiver dans WordPress ? Cet article explique ce qu'est xmlrpc.php et comment vous pouvez le désactiver.

Communiquer avec WordPress à partir d'applications extérieures à l'environnement WordPress via la spécification XML-RPC est possible en normalisant une méthode de communication entre les systèmes.

Depuis son origine, cette spécification a été d'une grande valeur pour la communauté WordPress. Sans lui, WordPress aurait été isolé du reste d'Internet.

Cependant, xmlrpc.php présente également certains inconvénients. L'API WP REST est devenue un composant essentiel de WordPress depuis la découverte des vulnérabilités du fichier xmlrpc.php. Cela améliore considérablement la façon dont WordPress interagit avec d'autres logiciels.

Le but de cet article est d'expliquer ce qu'est xmlrpc.php, pourquoi cela devrait être désactivé et comment vous pouvez le désactiver.

Nous vous suggérons également de consulter notre article sur les meilleurs plugins de sécurité WordPress.

Qu'est-ce que le fichier xmlrpc.php ?

Le but de cette section est de répondre à la question Qu'est-ce que PHP XML-RPC ? La spécification XML-RPC peut être utilisée pour communiquer entre WordPress et d'autres systèmes.

En utilisant HTTP comme protocole de transport et XML comme protocole d'encodage, XML-RPC pourrait standardiser les protocoles utilisés dans ces communications.

WordPress a été dérivé en 2003 du logiciel de blogging b2, qui utilisait XML-RPC comme interface. Un fichier appelé xmlrpc.php réside dans le répertoire racine du système et contient le code de cette fonctionnalité. Ce fichier est toujours disponible même si XML-RPC est en grande partie obsolète.

C'était le paramètre par défaut dans les premières versions de WordPress pour désactiver XML-RPC. Depuis la version 3.5, il est activé par défaut pour prendre en charge la communication entre votre application mobile WordPress et votre installation WordPress.

Avant la version 3.5 de WordPress, l'application mobile WordPress ne pouvait publier du contenu que si votre site était configuré avec XML-RPC. Cela était dû au fait que l'application n'exécutait pas WordPress ; à la place, il communiquait avec votre site WordPress en utilisant xmlrpc.php.

De plus, XML-RPC est utilisé pour communiquer entre WordPress et d'autres plates-formes de blogs et entre WordPress et l'application mobile WordPress.

XML-RPC peut être utilisé pour les pingbacks et les trackbacks. Il a également servi de backend pour le plugin Jetpack, qui a permis aux sites WordPress auto-hébergés de devenir membres de WordPress.com.

Comme l'API REST est désormais intégrée au cœur de WordPress, nous n'utilisons plus le fichier xmlrpc.php. Au lieu d'utiliser ce fichier, vous pouvez désormais communiquer avec l'application mobile WordPress, les clients de bureau, le plug-in Jetpack et d'autres systèmes et services à l'aide de l'API REST.

Il est également possible d'intégrer l'API REST à une plus large gamme de systèmes, et sa flexibilité est supérieure à celle de xmlrpc.php. Étant donné que XML-RPC a été remplacé par des API REST, vous devez désactiver xmlrpc.php sur votre site Web pour éviter les problèmes.

Pourquoi devriez-vous désactiver XML-RPC ?

Vous devez savoir que le fichier xmlrpc.php peut exposer la vulnérabilité XML-RPC de votre site WordPress aux pirates, vous devez donc le désactiver.

L'utilisation de XML-RPC n'est plus nécessaire pour les communications en dehors de WordPress. Si vous souhaitez garder votre site aussi sécurisé que possible, vous devez le désactiver.

C'est pour cette raison que WordPress sera toujours rétrocompatible. Vous devez constamment mettre à jour les plugins WordPress et les thèmes associés aux sites Web WordPress si vous en êtes responsable.

Si XML-RPC est activé sur votre site Web, un pirate peut l'utiliser comme outil pour lancer une attaque DDoS sur votre site Web. Ils peuvent utiliser le module xmlrpc.php pour générer de nombreux pingbacks vers votre site, ce qui peut surcharger le serveur et entraîner la panne du site Web.

De plus, xmlrpc.php envoie également des informations d'authentification avec chaque requête, de sorte que les pirates peuvent intercepter ces informations et les utiliser pour tenter d'accéder à votre site Web. Cette attaque par force brute peut permettre aux pirates d'exécuter du code malveillant, de supprimer du code et même d'endommager votre base de données.

Comment vérifier que XML-RPC est activé ?

Veuillez cliquer sur le lien suivant pour accéder au site Web : WordPress XML-RPC Validation Service.

Une fois que vous avez saisi votre nom de domaine, cliquez sur le bouton Vérifier.

Vérifiez que xmlrpc est activé sur WordPress

Si le test a réussi, XML-RPC sera maintenant activé, qui devrait être désactivé immédiatement.

Désactiver XMLRPC à l'aide des plugins WordPress

Pour diverses raisons, les propriétaires de sites peuvent souhaiter désactiver la fonctionnalité XMLRPC. Vous pouvez utiliser divers plugins, tels que Disable XML-RPC, pour ce faire.

Désactiver XMLRPC à l'aide du plug-in Désactiver XML-RPC

Nous expliquons comment utiliser le plug-in Disable XML-RPC pour désactiver la fonctionnalité XMLRPC. Veuillez vous connecter à votre panneau d'administration WordPress.

1. Cliquez sur Plugins puis sur Ajouter nouveau.

2. Entrez "Désactiver XML-RPC" dans la zone de recherche. Installez ensuite le plugin Disable XML-RPC.

Installer un nouveau plugin dans WordPress

3. Activez le plugin et vous êtes prêt à partir. Ensuite, le XML-RPC est désactivé.

Installer le plug-in Désactiver CML-RPC

Dans ce plugin, vous pouvez trouver un validateur XML-RPC qui peut être utilisé pour vérifier si XML-RPC a été désactivé. Dans le cas où XML-RPC a été désactivé, un message d'échec apparaîtra. Sinon, vous pouvez le désactiver avec ce plugin.

Configurer XML-RPC et l'activation de l'API REST avec un plugin

Le plug-in REST XML-RPC Data Checker vous permet de configurer l'API REST et xmlrpc.php sur votre site Web de manière plus fine.

Après avoir installé et activé le plug-in, cliquez sur l'onglet XML-RPC après avoir cliqué sur l'onglet REST XML-RPC Data Checker dans les paramètres.

Grâce au plugin, vous pouvez spécifier exactement quelles fonctionnalités de xmlrpc.php sont activées sur votre site. Il est également possible de le désactiver complètement. Il existe également un onglet dans le plugin qui vous permet de contrôler l'API REST si vous le souhaitez.

Désactiver XMLRPC sans plugin

Si vous préférez ne pas ajouter d'autre plugin à votre site Web, vous pouvez désactiver xmlrpc.php en utilisant un filtre ou votre fichier .htaccess. Considérons les deux options ensemble.

Désactiver xmlrpc.php via un filtre

En utilisant le filtre xmlrpc_enabled, il est très facile de désactiver xmlrpc.php. Vous devez ajouter cette fonction et l'activer sur votre site Web :

 add_filter( 'xmlrpc_enabled', '__return_false' );

La fonction peut être ajoutée au fichier de fonctions du thème. Un fichier .htaccess peut également être modifié à l'aide de cPanel ou de FTP, selon que vous êtes connecté à un fournisseur d'hébergement utilisant Apache.

La fonction __return_false de WordPress renvoie la condition booléenne fausse. Ce filtre bloque uniquement les opérations qui nécessitent un utilisateur connecté.

Il doit être désenregistré de toutes les méthodes pour désactiver toutes les opérations du serveur XMLRPC. Pour ce faire, vous devez vous connecter au filtre xmlrpc_methods.

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

Le fichier xmlrpc.php crée un objet de classe wp_xmlrpc_server lorsqu'une demande est faite. Dans le dossier wp-includes se trouve un fichier de classe contenant une propriété appelée méthodes.

La propriété method comprend un tableau de noms de fonctions accessibles via des requêtes XML-RPC.

La fonction est renvoyée avec un message d'erreur lorsqu'elle n'est pas incluse dans ce tableau. Ainsi, si vous videz le tableau, vous êtes assuré de ne pouvoir utiliser aucune fonction.

Désactiver XML-RPC en utilisant .htaccess

La désactivation du XML-RPC à l'aide de .htaccess comprend quelques étapes simples. Voici comment vous pouvez désactiver xmlrpc.php .htaccess :

  • Vous pouvez utiliser FTP ou le gestionnaire de fichiers pour accéder au répertoire racine de votre site Web.
  • Vous devez ouvrir le fichier .htaccess.
  • Vous devrez ajouter le code suivant à votre fichier .htaccess :
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

xxx.xxx.xxx.xxx peut être remplacé par l'adresse IP à laquelle vous souhaitez accorder l'accès à xmlrpc.php. Si vous souhaitez supprimer entièrement xmlrpc.php de WordPress, vous pouvez supprimer cette ligne.

Désactiver XMLRPC dans Apache/Nginx

La désactivation de XMLRPC dans Apache/Nginx peut également être un processus simple. Le code suivant doit être ajouté au fichier de configuration Apache pour désactiver xmlrpc.php :

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

En utilisant le code suivant dans le fichier de configuration Nginx, vous pouvez désactiver xmlrpc.php :

 server { ----------- location /xmlrpc.php { deny all; } }

Comment rechercher et trouver des attaques XML-RPC dans différentes distributions Linux ?

Si vous recherchez des attaques XML-RPC dans différentes distributions Linux, vous pouvez utiliser les commandes suivantes pour arrêter les attaques xmlrpc.php :

Un serveur CentOS avec Apache installé :
 # grep xmlrpc /var/logs/httpd/access.log
Avec Apache sur Ubuntu :
 # grep xmlrpc /var/logs/apache2/access.log
Pour les serveurs basés sur Nginx :
 # grep xmlrpc /var/logs/nginx/access.log
Pour les serveurs basés sur cPanel :
 # grep xmlrpc /home/username/logs/access.log

Vous obtiendriez le résultat suivant si les commandes précédentes étaient exécutées sur un site WordPress attaqué :

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

Quand garder le fichier XML-RPC.php activé

Il existe quelques situations dans lesquelles il serait avantageux d'activer XML-RPC, et en voici quelques-unes :

  • Si l'API REST n'est pas disponible lorsque vous avez un ancien site Web qui ne peut pas être mis à jour vers la version 4.4 ou supérieure pour une raison quelconque.
  • Un programme ne peut pas accéder à l'API REST sur le site Web que vous utilisez pour communiquer avec lui.
  • Afin d'intégrer certaines applications tierces qui nécessitent XML-RPC pour fonctionner.

Il convient de noter, cependant, qu'aucune des critiques ci-dessus n'est une raison suffisante pour continuer à utiliser XML-RPC et l'exploit xmlrpc.php.

La seule raison pour laquelle WordPress l'a, c'est qu'il est rétrocompatible ; par conséquent, vous ne voudrez l'utiliser que si vous utilisez une version obsolète de WordPress.

Pour ceux qui souhaitent maintenir leur site à jour et prendre en charge la dernière version du logiciel, xmlrpc.php doit être désactivé.

Test de la fonctionnalité XML-RPC dans WordPress

De plus, vous pouvez utiliser l'option de test WordPress pour vérifier que votre site Web a été désactivé avec succès pour ne pas recevoir de requêtes XML-RPC.

À cette fin, vous pouvez télécharger l'application mobile WordPress sur votre téléphone. Des versions Android et iPhone de cette application sont disponibles. Après avoir installé l'application sur votre appareil, appuyez sur Entrez l'adresse de votre site existant pour commencer à l'utiliser.

Vous avez terminé si vous voyez le message d'erreur indiquant que les services XML-RPC sont désactivés sur ce site. Ceci est un message WordPress xmlrpc.php 403 interdit.

Conclusion

La spécification XML-RPC a été développée avant la création de WordPress pour permettre la communication avec des applications et des systèmes externes. Plusieurs failles de sécurité existent dans cette spécification, ce qui pourrait rendre votre site Web vulnérable aux attaques.

L'API REST permet à votre site de communiquer avec d'autres programmes, ce qui permet de désactiver xmlrpc.php sans souci. Si vous souhaitez augmenter la sécurité de votre site Web, suivez les étapes mentionnées pour ce faire.