Nous avons récemment reçu une question d'un lecteur que nous entendons assez souvent ici : « Comment désactiver l'API REST sur mon site WordPress ? » Et honnêtement, c'est une préoccupation valable.
Lorsque la version 4.4 de WordPress a été publiée avec l'API REST JSON, elle a ouvert un monde de possibilités pour les développeurs.
Cependant, pour de nombreux propriétaires de sites qui n'ont pas besoin de ces fonctionnalités avancées, l'API peut sembler un ajout inutile qui ouvre potentiellement leur site à des risques de sécurité.
Dans cet article, nous vous montrerons comment désactiver facilement l'API REST JSON dans WordPress.

Pourquoi désactiver l'API REST JSON dans WordPress ?
Il est indéniable que l'API offre de nombreux avantages aux développeurs WordPress. L'API permet de récupérer très facilement des données à l'aide de requêtes GET, ce qui est utile pour ceux qui créent des applications avec WordPress.
Cela dit, cela pourrait potentiellement exposer votre site Web à un nouveau front d'attaques DDoS. Cela peut également être gourmand en ressources et ralentir votre site Web WordPress.
Désactiver l'API REST JSON est similaire à désactiver XML-RPC, que de nombreux administrateurs de sites désactivent sur leurs sites WordPress par mesure de sécurité.
Cela dit, nous vous montrerons deux méthodes pour désactiver facilement l'API REST JSON dans WordPress. Utilisez simplement les liens rapides ci-dessous pour accéder à la méthode que vous souhaitez utiliser :
Méthode 1. Désactiver l'API REST JSON dans WordPress avec du code (recommandé)
En ce qui concerne la modification des fonctionnalités de WordPress, l'utilisation d'extraits de code est souvent la meilleure approche. Cependant, modifier directement le fichier functions.php de votre thème peut être risqué et pourrait casser votre site s'il n'est pas fait correctement.
C'est pourquoi nous recommandons d'utiliser le plugin WPCode pour désactiver l'API REST JSON dans WordPress.
C'est le même plugin que nous utilisons sur nos propres sites Web pour ajouter facilement du code personnalisé dans WordPress sans modifier les fichiers du thème.
Pour en savoir plus sur la façon dont nous utilisons le plugin, consultez notre revue complète de WPCode.

De plus, WPCode est livré avec une bibliothèque de code intégrée qui comprend des extraits de code vérifiés pour les demandes de fonctionnalités populaires telles que la désactivation de l'API REST, la désactivation de XML-RPC, et bien plus encore.
Cela vous évite d'installer plusieurs plugins à usage unique pour différentes tâches.
Pour commencer, vous devez installer et activer le plugin gratuit WPCode. Pour des instructions étape par étape, lisez notre guide sur comment installer un plugin WordPress.
Note : La version gratuite de WPCode contient tout ce dont vous avez besoin pour ajouter facilement du code personnalisé dans WordPress. Mais, si vous souhaitez des fonctionnalités avancées comme une bibliothèque de snippets dans le cloud privé, des snippets spécifiques à la page et à l'appareil, des révisions de code, et plus encore, vous pouvez passer à WPCode Pro.
Une fois le plugin activé, allez dans Snippets de code » Bibliothèque depuis votre tableau de bord WordPress.
Ensuite, recherchez le snippet « Désactiver l'API REST de WordPress » et cliquez sur le bouton « Utiliser le snippet ».

Le plugin ajoutera alors automatiquement le code pour vous, et il sélectionnera également la méthode d'insertion appropriée.

Tout ce que vous avez à faire est de basculer le commutateur de « Inactif » à « Actif ».
Ensuite, cliquez sur le bouton « Mettre à jour ».

C'est tout. L'API REST JSON est maintenant désactivée sur votre site WordPress.
Méthode 2. Désactiver l'API REST JSON dans WordPress avec un plugin
Vous pouvez également désactiver facilement l'API REST JSON à l'aide d'un plugin dédié.
La première chose à faire est d'installer et d'activer le plugin Disable REST 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 il n'y a aucun réglage à configurer.
Lors de l'activation, le plugin renverra de force une erreur d'authentification à toute requête API provenant de sources qui ne sont pas connectées à votre site web.
Cela empêchera efficacement les requêtes non autorisées d'utiliser l'API REST pour obtenir des informations de votre site web.
Vous pouvez tester cela en visitant la page http://example.com/wp-json. Assurez-vous de vous déconnecter de la zone d'administration WordPress d'abord, ou de passer votre navigateur en mode incognito.
N'oubliez pas de remplacer example.com par votre propre nom de domaine. Vous verrez ce message, indiquant que les requêtes API REST sont bloquées.

C'est tout, vous avez désactivé avec succès les requêtes API REST non autorisées sur votre site WordPress.
Méthode alternative : Désactiver les liens de l'API REST dans WordPress avec du code
Au lieu de désactiver l'API REST WordPress, vous pouvez choisir de désactiver uniquement les liens de l'API REST. Cela masque les points d'accès de l'API du code source de votre site WordPress sans désactiver complètement l'API REST.
Avec cette méthode, vous pouvez améliorer la sécurité en rendant les points de terminaison plus difficiles à trouver, tout en conservant le fonctionnement normal de toutes les fonctionnalités de WordPress. C'est un choix populaire parmi les développeurs car il ajoute de la sécurité sans casser les thèmes ou les plugins qui ont besoin de l'API REST pour fonctionner.
Pour ce faire, vous devez installer et activer le plugin WPCode. Si vous avez besoin d'aide, consultez notre tutoriel sur comment installer un plugin WordPress.
Après l'activation, accédez à Extraits de code » Bibliothèque depuis votre tableau de bord WordPress.
À partir de là, recherchez l'extrait 'Désactiver les liens de l'API REST'. Lorsque vous le trouvez, survolez-le et cliquez sur le bouton 'Utiliser l'extrait'.

Après cela, WPCode ajoutera automatiquement l'extrait de code et sélectionnera la méthode d'insertion appropriée.

Maintenant, tout ce que vous avez à faire est de passer le commutateur de 'Inactif' à 'Actif'.
Enfin, cliquez sur le bouton 'Mettre à jour'.

C'est aussi simple que cela. Désormais, les liens de l'API REST seront désactivés sur votre site Web WordPress.
Nous espérons que cet article vous a aidé à apprendre comment désactiver l'API REST JSON dans WordPress. Les utilisateurs soucieux de la sécurité voudront peut-être également consulter ces conseils sur la protection de la zone d'administration WordPress, ou consulter notre sélection d'experts des meilleurs plugins de sauvegarde 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.

Dennis Muthomi
J'apprécie particulièrement les deux méthodes que vous avez décrites, en particulier l'approche basée sur le code utilisant WPCode. En tant que propriétaire de site, j'ai hésité à désactiver l'API en raison de ses avantages, mais votre explication des risques potentiels de sécurité m'a fait reconsidérer.
Je suis intéressé par le plugin WPCode et sa capacité à gérer les extraits de code personnalisés en toute sécurité. Je vais certainement explorer davantage cet outil pour implémenter d'autres personnalisations WordPress sans encombrer mon site avec des plugins à usage unique.
Merci pour cela. WPBeginner est LE MEILLEUR !
Dayo Olobayo
J'apprécie la clarté de ce tutoriel sur la désactivation de l'API REST JSON dans WordPress. Cependant, je me demande si la désactivation complète de l'API est la meilleure approche compte tenu de ses avantages potentiels pour la fonctionnalité du site Web et l'intégration avec d'autres services.
Support WPBeginner
Cela dépendrait du propriétaire du site pour savoir si c'est le mieux pour ses besoins ou non, ou s'il a rencontré un problème lors de son utilisation.
Admin
Dayo Olobayo
Merci. Je suppose qu'il est essentiel de peser les risques de sécurité potentiels par rapport aux avantages de l'API REST JSON en tenant compte des besoins et des circonstances uniques du propriétaire.
Jiří Vaněk
Salut Dayo Olobayo,
La question est plutôt de savoir si vous utilisez cette API ou non. C'est la même chose qu'avec XML-RPC. Je ne l'utilise pas sur mon site web, donc je l'ai désactivée. Bien sûr, cela signifie que je ne peux pas me connecter au site web en utilisant, par exemple, l'application mobile WordPress, qui utilise XML-RPC pour se connecter. C'est toujours un compromis entre ce que vous voulez désactiver et ce que vous voulez autoriser. Toute API qui accepte des requêtes externes peut représenter un risque potentiel, et il s'agit simplement de savoir si vous voulez l'utiliser ou non.
RJW
J'essaierais le plugin de désactivation dans l'environnement de développement avant la production, j'ai constaté que son installation avait cassé certaines fonctionnalités
Support WPBeginner
Si vous avez de nombreux plugins et outils différents et un environnement de test, il serait certainement bon de tester de nouveaux plugins et leur interaction avec votre site.
Admin
Ricky
Similaire à un commentateur ci-dessus, j'ai remarqué la requête « wp-json » lors de l'utilisation de Pingdom et d'autres sites de test. Malheureusement, le mien prend plus de 10 secondes (oui, vraiment !!) à charger. Cela augmente le temps de chargement global de mon site Web et je ne parviens pas à trouver comment résoudre ce problème. Le plugin ne change rien du tout. Des suggestions ?
Janice
Comment savoir si j'ai réellement l'API JSON sur mon site web ?
Cet article sur la suppression est bien – si j'en ai besoin – mais j'ai souvent été alarmé par certains avertissements pour découvrir ensuite qu'ils ne s'appliquaient même pas à moi.
Support WPBeginner
Salut Janice,
Si vous utilisez un site WordPress.org auto-hébergé, alors vous avez l'API REST JSON disponible sur votre site Web.
Admin
Logan Cale
Je déteste ajouter un autre plugin pour une tâche simple, et j'ai trouvé que nous pouvons désactiver cette fonctionnalité en ajoutant l'extrait de code suivant au fichier functions.php.
add_filter(‘rest_enabled’, ‘_return_false’);
add_filter(‘rest_jsonp_enabled’, ‘_return_false’);
Margarit Koka
Merci mec, ta réponse est ce que je cherchais en visitant cette page.
Bobby C.
Merci ! Droit au but.
Hari
Je cherchais ce code, ça a marché, merci, je n'aime pas ajouter de plugins.
Michael
Merci pour votre aide. Il n'y a pas d'option 'ajouter nouveau' dans mes plugins.
Support WPBeginner
Vous utilisez probablement WordPress.com. Veuillez consulter notre guide sur la différence entre WordPress.org auto-hébergé et le blog WordPress.com gratuit.
Admin
Lynne
Thank you! Spot on
worked for me
J.L.
Est-ce que cela concerne uniquement les blogs auto-hébergés ou aussi les sites de blog gratuits ? La plupart des extensions… etc. sont déjà configurés pour vous lorsque vous n'êtes pas auto-hébergé.
PS Je ne m'abonne pas… je veux juste une réponse
Support WPBeginner
Ceci est uniquement pour les sites WordPress.org auto-hébergés.
Admin
Elaine
Comment puis-je vérifier si mon site a une API REST ? J'ai désactivé beaucoup d'options supplémentaires lorsque je l'ai configuré pour la première fois, mais maintenant je ne sais pas où chercher pour voir si elle est là. Je ne tiens pas à télécharger une extension inutilement.
Support WPBeginner
Salut Elaine,
Vous pouvez vérifier si l'API REST est activée sur votre site en visitant l'URL comme ceci : exemple.com/wp-json. Assurez-vous d'être déconnecté de WordPress avant de le faire. Si vous voyez beaucoup d'informations en texte brut, cela signifie que l'API REST est activée sur votre site. Suivez les instructions ci-dessus pour la désactiver.
Admin
Saransh Jain
Qu'en est-il de l'option de désactivation de l'API JSON REST dans l'extension Jetpack ?
Ken Dowling
La désactivation de l'API REST convient-elle aux sites de commerce électronique tels que WooCommerce ? Je crois comprendre que WooCommerce utilise beaucoup l'API REST.
De plus, mes acheteurs n'ont pas à se connecter pour acheter, alors qu'advient-il de la transaction lorsqu'un appel d'API REST est rejeté ?
Cordialement, Ken
D. Joe Chaffin
L'extension ne fait aucune différence pour moi dans WP 4.7.2. Avec l'extension activée ou désactivée, les pages exemple.com/wp-json (avec mon domaine remplaçant « exemple ») affichent une liste massive de paramètres pour mon site.
D. Joe Chaffin
Hmmmm. Maintenant que j'y regarde, je ne vois la liste que dans Safari, tandis que Chrome et Firefox pour Mac affichent le message attendu spécifié dans cet article.
Support WPBeginner
Bonjour,
Assurez-vous d'être déconnecté de la zone d'administration de WordPress ou d'utiliser le mode incognito avant de tester la page exemple.com/wp-json. L'extension désactive l'accès à la page uniquement pour les utilisateurs non autorisés. En tant qu'administrateur, vous pourrez toujours la voir.
Admin
D. Joe Chaffin
Embarrassé… Vous avez raison, bien sûr.
Audra Carpenter
Salut les gars,
Tout d'abord, merci beaucoup pour ce que vous faites ! J'ai tellement appris sur Wordpress grâce à vous et j'ai envoyé plein de monde dans votre direction !!
Ok, j'ai installé le plugin, mais je ne vois pas ce que vous suggérez ci-dessus ? J'ai un écran plein d'informations… ?
Des idées ?
Merci !
Support WPBeginner
Salut Audra,
Veuillez vous déconnecter ou utiliser une fenêtre de navigation privée pour tester. Le plugin désactive uniquement l'accès pour les utilisateurs non connectés.
Admin
Treasure
J'ai suivi ces étapes, mais quand j'ai voulu vérifier avec l'exemple, etc., j'ai obtenu 2 pages de code, pas la réponse montrée ci-dessus. Hmmm, je ne sais pas quoi faire.
Treasure
D'accord, je l'ai refait et j'ai obtenu le bon message. Merci !
Doug Nix
Lorsque j'ai effectué le test, je pense qu'il a échoué, car j'ai obtenu une tonne de données à l'écran. Une idée de ce qui n'a pas fonctionné ? J'ai installé le plugin comme décrit…
Doug Nix
Fonctionne parfaitement lorsque je vérifie en utilisant une fenêtre de navigation privée. Merci pour l'explication concernant les utilisateurs autorisés vs non autorisés ou anonymes.
Laura Zielke
A parfaitement fonctionné. Merci !
Karl
Merci pour le conseil ainsi que pour le crochet pour désactiver XMLRPC.
Y a-t-il une chance pour un crochet de filtre pour l'API REST également ?
Andrew
Lorsque je vérifie la vitesse de mon site en utilisant pingdom.com, la première entrée HTML qui a essayé de se charger affiche le lien comme mydomain.com/wp-json et elle a plus de 2 secondes de temps d'attente. Est-ce la même chose que ce dont parle cet article ? J'hésite à le désactiver simplement car je suppose qu'il sera utilisé à l'avenir. Une idée pourquoi cela ajouterait un délai de plus de 2 secondes au chargement de quoi que ce soit sur la page ?
Stephen Cronin
Hmm, l'API REST va devenir la méthode standard pour que les plugins et les thèmes effectuent des appels Ajax vers le serveur depuis le front-end, remplaçant admin-ajax, donc je ne la désactiverais pas… J'espère qu'ils échoueront gracieusement, mais vous finirez presque par manquer certaines fonctionnalités.
Also, if you really want to protect against DDoS attacks, you better disable html as well!
reza
Plus de 50 000 sites WordPress ont été piratés en raison d'une faille de sécurité majeure découverte dans l'API REST de WordPress.
Jim S Smith
AÏE !
C'est troublant à savoir. J'ai remarqué BEAUCOUP de tentatives d'accès dans les journaux de mon site.
De plus,
Je pense que les gens de WordPress auraient pu faire un peu mieux en laissant les utilisateurs décider dans quelle mesure, voire pas du tout, ils souhaitent exposer l'API REST.
Encore,
Encore plus de ce genre : « Les développeurs en savent PLUS sur les besoins des utilisateurs que les utilisateurs eux-mêmes ! » – Je n'étais pas non plus très content d'être obligé de prendre en charge les EMOJIS et les polices chargées à distance depuis fonts.google.com, même si mes sites ne les utilisent pas !
L'API REST peut être une aubaine pour (certains) vrais développeurs d'applications web, mais qu'en est-il du reste d'entre nous qui ne l'utiliserons probablement pas ? ? ?
Kasey
Quelle est la probabilité qu'un plugin utilise cette fonctionnalité. Par exemple, les formulaires de contact l'utiliseraient-ils ? Je ne suis pas très enthousiaste à l'idée de le désactiver au cas où cela casserait quelque chose.
Support WPBeginner
Les plugins vous notifieront très probablement s'ils vont l'utiliser et que vous l'avez désactivé.
Admin