Sécurité Publié par le

Désactiver l’accès public par défaut de l’API REST dans WordPress 4.7

Désactiver l’accès public par défaut de l’API REST dans WordPress 4.7

La grande nouveauté de WordPress 4.7, c’est la mise en production d’un outil que les développeurs attendaient depuis longtemps : l’API REST.

Une API REST dans WordPress ? Pour quoi faire ?

Petit rappel pour les plus novices d’entre vous. Le principe d’une API est de permettre à des applications ou services tiers de communiquer facilement avec un site Internet.

En d’autres termes, une API (Applications Programming Interface) permet à des développeurs, de concevoir des scripts qui peuvent s’authentifier sur WordPress pour y créer, modifier, supprimer ou récupérer des contenus dans le but d’automatiser des actions.

Jusqu’à présent, avant WordPress 4.7, nous avions déjà la possibilité d’interagir avec un blog sous WP. Cet accès distant se faisait via un Webservice nommé XML-RPC et était activé par défaut depuis WordPress 3.5 (je vous conseille d’ailleurs de le désactiver) !

WP attack API REST

Cette nouvelle API de type REST apporte de nouvelles possibilités pour mieux répondre aux besoins du web moderne…

Cependant, cette nouvelle API possède un réglage par défaut qui donne l’accès anonyme à la liste des utilisateurs de votre site. Un problème de sécurité majeur qui necessite d’être corrigé !

Faites le test en vous rendant à cette adresse pour visualiser ce à quoi n’importe qui peut avoir accès sur votre site grâce à l’API REST de WordPress 4.7 :

VOTRE-NOM-DE-DOMAINE.COM/wp-json/wp/v2/users

Comment désactiver l’accès public de l’API REST de WordPress 4.7 ?

Si vous souhaitez vous protéger de ces réglages par défaut, il y a plusieurs possibilités :

En installant un simple plugin…

Disable REST API
Ce plugin ne désactivera pas totalement votre API REST mais restreindra de façon sélective l’accès aux données de votre site aux seuls utilisateurs connectés.

ou en ajoutant quelques lignes à votre fichier functions.php

add_filter(‘json_enabled’, ‘__return_false’);
add_filter(‘json_jsonp_enabled’, ‘__return_false’);
add_filter( ‘rest_enabled’, ‘__return_false’ );
add_filter( ‘rest_jsonp_enabled’, ‘__return_false’ );
remove_action( ‘xmlrpc_rsd_apis’, ‘rest_output_rsd’ );
remove_action( ‘wp_head’, ‘rest_output_link_wp_head’, 10 );
remove_action( ‘template_redirect’, ‘rest_output_link_header’, 11 );

En ajoutant ces quelques lignes de code vous désactiverez totalement l’accès aux API XML-RPC et REST de WordPress.

En savoir + sur l’API XML-RPC de WordPress
En savoir + sur l’API-REST de WordPress

Advertisements


1

You must be logged in to post a comment.

Advertisements