XML-RPC est une API WordPress principale qui permet aux utilisateurs de se connecter à leur site WordPress à l'aide d'applications, d'outils et de services tiers. Malheureusement, par le passé, des pirates ont trouvé des moyens d'exploiter XML-RPC pour accéder aux sites WordPress.
Chez WPBeginner, nous avons aidé des milliers d'utilisateurs à sécuriser leur site WordPress et à désactiver XML-RPC. Nous avons constaté qu'il existe différentes façons de procéder, en fonction de vos connaissances techniques.
Par exemple, vous pouvez désactiver XML-RPC en accédant au fichier .htaccess ou en ajoutant un extrait de code. Pendant ce temps, si vous êtes débutant, il existe un plugin qui désactive le fichier principal sans avoir à modifier le code.
Dans cet article, nous vous montrerons comment désactiver facilement XML-RPC dans WordPress en utilisant différentes méthodes.

Qu'est-ce que XML-RPC dans WordPress ?
XML-RPC est une API WordPress principale qui est activée par défaut depuis la sortie de WordPress 3.5 en 2012. Elle permet aux développeurs d'utiliser les protocoles XML et HTTPS pour se connecter et interagir avec votre site WordPress.
En bref, vous avez besoin que XML-RPC soit activé pour accéder et publier votre blog à distance, par exemple lorsque vous souhaitez utiliser une application mobile pour gérer votre site ou établir des connexions avec des services d'automatisation tels que Uncanny Automator ou Zapier.
Cependant, si vous n'utilisez pas d'applications mobiles avec votre site Web, certains experts en sécurité WordPress peuvent vous conseiller de désactiver XML-RPC. Cela ferme une porte qui pourrait potentiellement être exploitée pour pirater votre site Web.
Cela dit, examinons comment désactiver facilement l'API XML-RPC dans WordPress. La méthode .htaccess est la meilleure car elle consomme le moins de ressources, et les autres méthodes sont plus faciles pour les débutants.
- Méthode 1 : Désactiver XML-RPC de WordPress avec .htaccess (Avancé)
- Méthode 2 : Désactiver XML-RPC de WordPress avec un extrait de code (Recommandé)
- Méthode 3 : Désactiver XML-RPC de WordPress avec un plugin
- Vérifier que XML-RPC de WordPress est désactivé
Méthode 1 : Désactiver XML-RPC de WordPress avec .htaccess (Avancé)
Cette méthode s'adresse aux utilisateurs avancés car elle nécessite de modifier le fichier .htaccess de votre site. Nous recommandons aux débutants d'utiliser la méthode 2 ou 3.
Cette méthode présente plusieurs avantages, tels que la possibilité de donner un accès à distance à vous-même et à votre équipe tout en restreignant les autres. Elle n'affectera pas non plus négativement les performances de votre WordPress car elle désactive les requêtes XML-RPC avant qu'elles ne soient transmises à WordPress.
Vous devrez ajouter le code suivant à votre fichier .htaccess. Vous pouvez le faire en vous connectant à votre site à l'aide d'un client FTP ou d'un gestionnaire de fichiers. De plus, les utilisateurs d'All in One SEO peuvent utiliser l'outil d'édition intégré du plugin pour ajouter l'extrait de code, comme vous pouvez le voir dans la capture d'écran ci-dessous.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

Si vous souhaitez accorder à un utilisateur spécifique un accès à distance à votre site, remplacez simplement « 123.123.123.123 » à la ligne 5 par son adresse IP. Vous pouvez ajouter plusieurs adresses IP en les séparant par des espaces.
Ou, si vous souhaitez désactiver complètement XML-RPC, supprimez la ligne 5.
Remarque : Si vous ne trouvez pas .htaccess, consultez notre guide sur pourquoi vous ne trouvez pas le fichier .htaccess dans WordPress.
Méthode 2 : Désactiver XML-RPC de WordPress avec un extrait de code (Recommandé)
Cette méthode vous demande d'ajouter du code à votre site WordPress. Si vous ne l'avez jamais fait auparavant, consultez notre guide sur la façon de copier et coller des extraits de code personnalisés dans WordPress.
WPCode est le moyen le plus simple et le plus sûr d'ajouter du code à votre site WordPress. Il vous aide à gérer vos extraits de code et empêche toute erreur de casser votre site.
Dans cette méthode, nous utiliserons l'un des extraits de code intégrés de WPCode pour désactiver XML-RPC.
Tout d'abord, vous devez installer le plugin gratuit WPCode. Pour des instructions étape par étape, consultez notre guide étape par étape sur comment installer un plugin WordPress.
Après l'activation, allez dans Extraits de code » Ajouter un extrait. La bibliothèque WPCode contient déjà un extrait qui désactive XML-RPC. Vous pouvez le trouver en recherchant 'xml.'
Une fois que vous l'avez trouvé, vous devez cliquer sur le bouton 'Utiliser l'extrait'.

Ensuite, vous devez faire passer le commutateur 'Actif' à la position 'Activé'.
Enfin, assurez-vous de cliquer sur le bouton 'Mettre à jour' pour activer l'extrait sur votre site et désactiver l'API XML-RPC.

Méthode 3 : Désactiver XML-RPC de WordPress avec un plugin
C'est une méthode simple qui peut être utilisée si vous ne souhaitez pas ajouter d'autres personnalisations à votre site Web avec un plugin d'extraits de code.
Installez et activez simplement le plugin Disable XML-RPC-API. Pour plus de détails, consultez notre guide étape par étape sur comment installer un plugin WordPress.
Le plugin fonctionne dès l'installation et désactivera immédiatement XML-RPC.
Vous pouvez naviguer vers XML-RPC Security » XML-RPC Settings pour configurer le plugin. Par exemple, vous pouvez autoriser certains utilisateurs à accéder à XML-RPC en ajoutant leurs adresses IP à la liste blanche.

Vérifier que XML-RPC de WordPress est désactivé
Vous devriez maintenant vérifier que vous avez bien désactivé l'API XML-RPC sur votre site WordPress.
Vous pouvez également vérifier que XML-RPC est désactivé en visitant simplement l'URL http://example.com/xmlrpc.php dans votre navigateur. Assurez-vous de remplacer « example.com » par le nom de domaine de votre propre site web.
Si XML-RPC est désactivé, vous devriez voir le message d'erreur : « Forbidden: You don’t have permission to access this resource. »
Nous espérons que cet article vous a aidé à apprendre comment désactiver facilement XML-RPC dans WordPress. Vous pourriez également vouloir consulter notre guide sur comment ajouter facilement du JavaScript dans WordPress et les meilleurs outils de développement WordPress.
Si cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.
Jiří Vaněk
Merci pour l'extrait. Finalement, j'ai désactivé XML-RPC en utilisant WPCode car cela semblait être le moyen le plus simple, et je peux aussi facilement réactiver XML-RPC. Super !
Pete Mason
dans htaccess, la ligne :
allow from 123.123.123.123
semble vouloir être modifiée avec mon adresse IP. Mais ce n'est indiqué nulle part — ?
Christine
Y a-t-il une différence entre désactiver et bloquer ?
Support WPBeginner
Bloquer tenterait de limiter l'accès à la fonctionnalité tandis que désactiver l'éteindrait complètement. Si vous le désactivez, vous n'auriez pas à vous soucier que quelqu'un y accède par une méthode différente.
Admin
Rashmi K
Le plugin recommandé Disable XML-RPC n'a pas été mis à jour depuis 2 ans. Il est indiqué que le plugin n'a pas été testé avec les 3 dernières versions de WordPress.
Support WPBeginner
Pour connaître notre position sur l'avertissement "non testé", vous voudrez bien consulter notre article ci-dessous :
https://www.wpbeginner.com/opinion/should-you-install-plugins-not-tested-with-your-wordpress-version/
Admin
Nikhil
Bonjour,
La désactivation de l'accès à xmlrpc.php désactivera-t-elle également l'accès aux API WordPress utilisées pour le développement d'applications Android/iOS ?
Support WPBeginner
Cela dépendrait de l'API utilisée par les applications elles-mêmes.
Admin
Vyom
Solution trouvée : Ajout des informations suivantes dans la configuration nginx : # bloc nginx pour les requêtes xmlrpc.php location /xmlrpc.php { deny all; }
Vyom
J'utilise nginx à la place d'Apache. Puis-je toujours utiliser .htaccess sur mon site ? Et dois-je stocker ce fichier dans le répertoire public_html, ou un niveau au-dessus ?
Support WPBeginner
Si vous utilisez nginx, vous ne pourrez pas utiliser htaccess.
Admin
Vyom
Merci pour votre réponse. Y a-t-il donc une alternative pour nginx ?
Support WPBeginner
Vous ajouteriez le plugin spécifique au site ou le plugin mentionné plus tôt dans l'article.
Chinecherem Somto
Salut, est-ce dans le fichier .htaccess à la racine du site que je vais coller le code ?
Support WPBeginner
Yes, the .htaccess in your site’s root folder is where you would add the .htaccess code
Admin
Mojtaba Rezaeian
Merci auteur.
Support WPBeginner
You are welcome Mojtaba
Admin
Bapi
Comment utiliser plusieurs IP ou une plage d'IP comme 123.123.123.1, 2, 3, …… 100,101
malcolm
pourquoi autoriserions-nous 123.123.123.123 ?
Si nous n'utilisons pas du tout le service, pourquoi ne pas laisser "deny all" être absolu ?
Edward
Si je lis le code correctement ; order deny,allow – place deny avant allow, puisque deny est 'all' alors allow n'est pas traité deny from all – fait ce qu'il dit allow from 123.123.123.123 – est un espace réservé
Je suppose que si vous avez une adresse IP fixe, vous pourriez changer l'ordre en « allow,deny » et remplacer 123.123.123.123 par votre adresse IP. Cela autoriserait votre IP puis refuserait toutes les autres.
David Hoy
Thanks WP-Beginner, I’m trying to be baddest WP boy in my neighbourhood and this is exactly why I keep coming back to you guys, each question I have you say; here is the easy way, and here is the RIGHT way
Moi et mon .htaccess allons avoir une petite discussion sur htpasswrd et ce truc XMLRPC dont mes clients n'auront jamais besoin.
Vous avez tous rendu mon coin d'Internet un peu plus sûr, comme dirait MailChimp : High Fives !
Support WPBeginner
Salut David,
Thanks for the kind words. We are glad you find WPBeginner helpful
Admin
Cezar
Ok, je vais utiliser ce code mais je veux que IFTTT fonctionne sur mon site web, qu'est-ce que je dois ajouter ?
# Bloquer les requêtes WordPress xmlrpc.php
ordre refuser,autoriser
refuser de tous
autoriser de 123.123.123.123
PhilB
Bonjour,
J'ai suivi les instructions pour bloquer le fichier xmlrpc.php en utilisant .htaccess mais je ne suis pas sûr si cela fonctionne.
J'utilise Wordfence Security et dans la vue du trafic en direct, je peux voir que les requêtes pour le fichier xmlrpc.php ont cessé, mais si je vérifie mes journaux d'accès
tail -f /apache2/logs/access_log
Je peux toujours voir les requêtes arriver, mais le code à la fin est passé de 500 à 403. Je crains d'avoir un faux rapport de mon plugin WordFence et que je sois toujours inondé de spam. Quelqu'un peut-il me conseiller ?
Merci,
PhilB
David Hoy
Oh oui ! Ça fonctionne parfaitement, votre XMLRPC est INTERDIT !
Code d'état HTTP 403 : Le serveur a compris la requête mais refuse de l'autoriser.
Raymundo
J'ai un problème étrange…
J'utilise mes blogs WordPress avec IFTTT et tout fonctionnait bien, jusqu'à ce que je l'intègre avec MaxCDN ; IFTTT a immédiatement cessé de fonctionner. J'ai fait quelques recherches et le problème pourrait être lié à XML-RPC qui a été désactivé.
Lorsque je vérifie mon tableau de bord dans « Paramètres » > « Écriture », je ne vois rien comme XML-RPC, Publication à distance, etc. J'ai vérifié la base de données dans les options, également xml-rpc non disponible / manquant.
J'ai besoin d'activer XML-RPC pour que mon IFTTT continue de fonctionner.
Comment puis-je réactiver XML-RPC ; tout ce dont j'ai besoin est un script que je peux ajouter dans .htaccess ou functions.php pour activer XML-RPC.
Et pourquoi est-ce que la fonctionnalité XML-RPC manque dans mon tableau de bord.
Merci !
Muhammad Ammar Ashfaq
Je cherchais comment ajouter ce fichier xmlprc.php à mon WordPress, j'utilise la version 4.5.3 et je suis tombé sur cette page. J'ai besoin d'ajouter ce fichier php car lorsque j'active Jetpack, j'obtiens une erreur de site inaccessible. S'il vous plaît, dites-moi comment résoudre cette erreur, mon site est
Support WPBeginner
Connectez-vous à votre site WordPress à l'aide d'un client FTP ou du gestionnaire de fichiers dans cPanel. Dans le répertoire racine de votre site Web, recherchez le fichier xmlrpc.php. S'il est là, essayez l'étape 2. S'il n'y est pas, téléchargez une copie fraîche de WordPress. Décompressez-le et téléchargez le fichier xmlrpc.php sur le répertoire racine de votre site.
Étape 2 : Vérifiez le fichier functions de votre thème WordPress pour le code qui désactive XML-RPC.
Étape 3 : Vérifiez vos fichiers .htaccess et wp-config.
Admin
omonaija
S'il vous plaît, que puis-je faire pour activer xmlrpc sur mon site ? car je ne peux pas me connecter avec l'application mobile WordPress sur mon smartphone..
Support WPBeginner
Si vous utilisez un plugin de sécurité sur votre site WordPress, vérifiez ses paramètres.
Admin
Mook
Booyah ! Ce filtre WP a corrigé l'attaque des script kiddies. J'ai quand même bloqué la personne au pare-feu, mais je n'ai pas à surveiller les journaux comme un faucon pour ajouter d'autres IP au pare-feu. MERCI.
Support WPBeginner
C'est pourquoi nous utilisons Sucuri.
Admin
Alex
Est-ce parce que Sucuri agit comme le plugin Disable XMLRPC ?
Si c'est le cas, je peux supprimer mon plugin Disable XMLRPC,
Merci
Alex
Support WPBeginner
Sucuri agit comme un pare-feu entre votre site et les utilisateurs. Il bloque toute activité suspecte avant qu'elle n'atteigne votre site Web.
Chad
Je suis tout à fait d'accord pour désactiver xmlrpc.php sur l'ensemble du serveur dans mon fichier /etc/httpd/conf/includes/pre_main_global.conf. Mais il me reste cette question… y a-t-il un moyen de déterminer qu'un plugin particulier « A BESOIN » de xmlrpc.php pour fonctionner ? Je crains de bloquer l'accès à celui-ci et d'avoir ensuite un problème 2 mois plus tard sans savoir que le problème vient du fait que j'ai précédemment bloqué xmlrpc.php.
Y a-t-il des signes courants à rechercher dans un fichier journal ou autre qui indiqueraient qu'un blocage de xmlrpc.php en est la cause ?
Soumitra
Salut, je viens d'installer le plugin, Disable XML-RPC
Voyons voir !
Phranq
Salut, j'utilise l'application WordPress pour publier avec mon smartphone Android. Maintenant, je ne peux pas me connecter et mes identifiants sont corrects. La réponse que j'ai obtenue était « nous ne pouvons pas vous connecter, impossible de se connecter au site WordPress ». Pourriez-vous m'aider à corriger cette erreur de connexion à l'application WordPress ?
Support WPBeginner
Si vous aviez désactivé XML RPC, vous ne pourrez peut-être pas vous connecter à l'application mobile WordPress. Regardez dans le fichier functions.php de votre thème pour ce code
add_filter('xmlrpc_enabled', '__return_false');1-click Use in WordPress
S'il est là, vous devrez le supprimer. Vous pouvez également essayer de désactiver les plugins et de les réactiver un par un jusqu'à ce que vous trouviez le plugin qui vous empêche de vous connecter à l'application mobile WordPress.
Admin
Josiah
Il est à noter que « allow from 123.123.123.123 » est facultatif et, s'il est utilisé, doit être mis à jour pour inclure votre adresse IP ou l'adresse IP de l'appareil qui a besoin d'accéder à xmlrpc.php (il serait bon de citer des exemples dans cet article).
Natalie
J'utilise le plugin GoodbyeCaptcha pour désactiver le XML-RPC et cela fonctionne sans problème lorsque Jetpack est activé.
J'espère que cela vous aidera
ATI
Désolé, j'ai essayé cette méthode plusieurs fois. Cela n'a pas fonctionné pour moi – en fait, cela a fait planter le front-end (bloquant l'accès de lecture des visiteurs à la page Web) après avoir ajouté ces codes au fichier .htaccess.
Gretchen Louise
Le désactiver de cette façon empêche-t-il ce problème ? http://theaffluentblogger.com/operating-a-website/wordpress-xmlrpc-php-vulnerability-affects-shared-hosting-sites/ J'ai une amie dont le site plante continuellement parce que son fichier xmlrpc est attaqué.
Personnel éditorial
Oui, cela empêchera l'attaque dans une certaine mesure.
Admin
Christopher Ross
Keith, il y a une tendance dans WordPress à déplacer les fonctions non liées au thème du fichier functions.php vers un « plugin spécifique au site », essentiellement un plugin que vous n'activez que sur un seul site Web unique et qui stocke les fonctions non liées au thème pour ce site.
Vous pouvez accomplir la même chose en plaçant le code dans votre fichier functions.php.
Keith Davis
Merci Chris
Il semble que vous ayez déjà couvert le sujet.
https://www.wpbeginner.com/beginners-guide/what-why-and-how-tos-of-creating-a-site-specific-wordpress-plugin/
Au fait, qu'est-il arrivé à votre système de commentaires ?
C'était Livefyre, puis quelque chose lié à Twitter et Facebook, et maintenant ?
Keith Davis
Salut les gars
Désolé d'être un peu lent mais pourriez-vous développer... « Tout ce que vous avez à faire est de coller le code suivant dans un plugin spécifique au site : »
Quels plugins sont spécifiques au site ?