Désactivez complètement JSON REST dans WordPress!

Cela a été un jeu de chat et de souris pour moi ces derniers mois, traitant des requêtes d’API REST sur mon site WordPress. La grande majorité de ces demandes ne sont pas anodines. Ce sont des hackers à la recherche de faiblesses. J’avais déjà écrit un article sur la façon dont je faisais énumération de nom d’utilisateur JSON désactivée basé sur l’API REST. Mais j’ai continué à recevoir d’autres demandes qui contournaient mon cache et atteignaient le serveur d’origine sans raison valable. Après plusieurs tentatives pour filtrer uniquement les demandes légitimes, j’ai finalement abandonné l’API REST et l’ai complètement désactivée.

Si votre site Web peut le faire en toute sécurité, je vous suggère de suivre mes traces. Voici ce qu’est l’API REST et ce qu’il faut prendre en compte avant de la supprimer.

REST Permet un accès structuré à votre site

Le but de l’API REST est d’autoriser 3environ Parties pour obtenir des informations sur votre site Web sans visiter les pages. Par exemple, si vous voulez une liste des auteurs sur le site, vous pouvez simplement faire une requête JSON qui ressemble à ceci:

https://[yoursite]/wp-json/wp/v2/users/

Voila! Désormais, tout le monde peut voir tous les utilisateurs de votre site Web. L’équipe WordPress a fait savoir publiquement qu’il ne s’agissait pas d’un risque pour la sécurité. Ceux d’entre nous qui, par contre, maintenons nos propres sites Web, le savent mieux. Nous savons que c’est mieux retenir autant d’informations que possible par des étrangers pour rendre le piratage plus difficile. Tout comme l’une des premières choses que vous faites sur un nouveau serveur VPS est de changer le port SSH de sa valeur par défaut 22. L’idée est de rendre la vie difficile aux hackers et de ne pas leur donner de gains gratuits.

Avec REST, vous pouvez faire bien plus que simplement lister les auteurs. Vous pouvez obtenir une liste des catégories, la taxonomie complète du site et bien plus encore.

Il est si complet, en fait, qu’il ne sert à rien de le bloquer petit à petit. Il est plus facile de tout jeter.

Les conséquences de la désactivation de REST

Notez cependant que la désactivation de l’API REST peut avoir des ramifications. Pour moi, la chose la plus importante qui me vient à l’esprit est que l’éditeur Gutenberg a besoin de REST pour fonctionner correctement. Je ne sais pas pourquoi, mais c’est le cas.

En guise de compromis, j’active brièvement l’API REST dans les paramètres de mon pare-feu lorsque je travaille sur une publication nouvelle ou existante, puis je la réactive lorsque j’ai terminé!

Un autre problème est que le plugin Jetpack ne fonctionne pas correctement. Il a besoin de l’API pour communiquer avec WordPress. Personnellement, cela ne m’affecte pas parce que je N’utilisez plus le Jetpack il y a quelque temps et a trouvé d’autres alternatives.

En outre, l’outil WordPress qui vérifie la WordPress Divi du site Web se plaint que REST n’est pas activé. Je l’ignore simplement.

Bloquer REST via le pare-feu

J’utilise le pare-feu Cloudflare pour bloquer uniquement toutes les URL contenant:

/wp-json

Et pendant que je travaille sur un article, je ne désactiverai que temporairement cette règle de pare-feu. C’est un système qui fonctionne très bien pour moi!

Désactiver REST via WordPress ne suffit pas

Vous pouvez également utiliser le filtre « rest_endpoints » pour supprimer les API de WordPress. Cependant, ce n’est toujours pas une solution idéale, car ces requêtes passent par votre cache et vont directement au serveur d’origine, qui doit être fonctionnel pour générer une réponse. Vous voulez que ces demandes s’arrêtent immédiatement afin que votre serveur principal ne soit pas stressé. Et c’est pourquoi je recommande de le bloquer avec un pare-feu. Vous n’avez même pas besoin de l’éteindre en arrière-plan!

Espérons qu’au fil du temps, l’équipe WordPress constatera que l’API REST ne vaut tout simplement pas l’effort supplémentaire.





Source link

Recent Posts