L’API REST de WordPress permet aux développeurs et aux services tiers d’interagir avec un site de manière fluide et efficace. Elle est utilisée par l’éditeur Gutenberg, l’application mobile WordPress et divers plugins pour récupérer et modifier du contenu.

Cependant, une API REST mal configurée peut exposer des données sensibles comme les noms d’utilisateur, les brouillons d’articles et d’autres informations exploitables par des attaquants. Désactiver complètement l’API REST peut poser des problèmes de compatibilité, mais il existe des méthodes efficaces pour la sécuriser.

Dans cet article, nous allons voir les risques liés à l’API REST, pourquoi il est préférable de la protéger plutôt que de la désactiver, et les meilleures solutions pour la sécuriser efficacement.

Qu’est-ce que l’API REST de WordPress et pourquoi est-elle utile ?

L’API REST de WordPress, introduite en 2016, est une interface qui permet aux développeurs d’interagir avec un site WordPress à distance en utilisant des requêtes HTTP. Elle facilite la communication entre WordPress et d’autres applications ou services, rendant les données du site accessibles et manipulables de manière structurée.

Fonctionnalités principales de l’API REST

  • Récupération de données : Permet d’obtenir des informations sur les articles, pages, catégories, utilisateurs, etc., au format JSON, facilitant ainsi leur utilisation dans des applications externes.

  • Création et mise à jour de contenu : Autorise la création, la modification ou la suppression de contenu sur le site via des requêtes authentifiées, offrant une flexibilité pour les applications tierces.

  • Intégration avec des services externes : Facilite la connexion de WordPress avec d’autres plateformes, comme des applications mobiles, des services web ou des systèmes internes, permettant des échanges de données fluides.

Pour une compréhension approfondie de l’API REST de WordPress, de son fonctionnement détaillé et de ses cas d’utilisation concrets, je vous invite à consulter mon article dédié : Découvrir l’API REST de WordPress.

Pourquoi sécuriser l’API REST au lieu de la désactiver ?

L’API REST est une fonctionnalité essentielle de WordPress qui ouvre des possibilités incroyables, mais elle peut parfois soulever des inquiétudes en matière de sécurité. Cependant, désactiver complètement l’API REST n’est pas recommandé dans la plupart des cas. Voici pourquoi il est préférable de la sécuriser plutôt que de la rendre totalement inaccessible.

Les risques d’une API REST mal sécurisée

Bien que l’API REST soit un atout majeur pour WordPress, elle peut poser des problèmes de sécurité si elle est mal configurée. Voici les principaux risques :

Exposition de données sensibles :

Par défaut, l’API REST peut exposer des informations comme :

  • La liste des utilisateurs (y compris leurs identifiants, comme admin).
  • Les métadonnées des articles ou des pages, si elles contiennent des informations confidentielles.

Ces données peuvent être utilisées par des hackers pour cibler votre site avec des attaques par force brute ou des tentatives d’exploitation.

Exploitation par des bots malveillants

Des bots peuvent abuser de l’API en envoyant un grand nombre de requêtes pour ralentir votre site. Cela peut aussi entraîner une surcharge de votre serveur, impactant les performances globales.

Comment sécuriser l’API REST ?

Plutôt que de désactiver l’API, il est préférable de la sécuriser pour éviter les abus tout en conservant ses fonctionnalités indispensables. Voici quelques mesures que vous pouvez mettre en place :

Limiter l’accès aux utilisateurs non connectés

Vous pouvez restreindre l’accès à l’API REST pour les utilisateurs qui ne sont pas authentifiés sur votre site. Cela permet de protéger les données sensibles tout en laissant les fonctionnalités nécessaires aux utilisateurs connectés.

Ajoutez ce code dans le fichier functions.php de votre thème actif :

// https://developer.wordpress.org/rest-api/frequently-asked-questions/#require-authentication-for-all-requests
add_filter( 'rest_authentication_errors', function( $result ) {
    // If a previous authentication check was applied,
    // pass that result along without modification.
    if ( true === $result || is_wp_error( $result ) ) {
        return $result;
    }

    // No authentication has been performed yet.
    // Return an error if user is not logged in.
    if ( ! is_user_logged_in() ) {
        return new WP_Error(
            'rest_not_logged_in',
            __( 'You are not currently logged in.' ),
            array( 'status' => 401 )
        );
    }

    // Our custom authentication check should have no effect
    // on logged-in requests
    return $result;
});

Que fait ce code ?

  • Bloque les requêtes API pour les visiteurs non connectés.
  • Retourne un message d’erreur clair pour les tentatives non autorisées.
  • Permet aux utilisateurs connectés (administrateurs, éditeurs, etc.) de continuer à utiliser l’API sans restrictions.

Masquer des points de terminaison sensibles

Si vous ne voulez pas restreindre totalement l’API pour les utilisateurs non connectés, vous pouvez masquer certains points de terminaison spécifiques, comme la liste des utilisateurs.

Voici un exemple :

// Supprime le point de terminaison des utilisateurs pour les visiteurs non connectés
add_filter('rest_endpoints', function ($endpoints) {
if (!is_user_logged_in()) {
unset($endpoints['/wp/v2/users']);
}
return $endpoints;
});

Que fait ce code ?

  • Empêche les visiteurs non authentifiés de consulter la liste des utilisateurs via l’API REST.
  • Protège vos administrateurs et éditeurs contre les tentatives d’exploitation par des hackers.

Pourquoi ne pas désactiver complètement l’API REST ?

Désactiver totalement l’API REST peut provoquer des problèmes imprévus et limiter des fonctionnalités essentielles :

  • Gutenberg et éditeurs modernes : L’éditeur de blocs Gutenberg repose sur l’API REST pour fonctionner correctement. En la désactivant, vous risquez de rendre son utilisation impossible.
  • Extensions dépendantes de l’API : De nombreuses extensions populaires, comme celles pour le SEO ou la gestion des formulaires, utilisent l’API pour stocker ou traiter des données.
  • Services externes : Si vous utilisez l’application mobile WordPress, Zapier, ou d’autres intégrations, désactiver l’API REST rompra ces connexions.
  • Headless WordPress : Si vous souhaitez un jour adopter une architecture headless pour votre site (avec une interface externe utilisant l’API pour afficher le contenu), l’API REST sera indispensable.

En conclusion, l’API REST est bien plus qu’un simple outil : c’est une passerelle qui connecte WordPress à un écosystème de services et d’applications. La désactiver revient à se priver de possibilités importantes, que ce soit pour automatiser vos tâches, exploiter des outils tiers, ou préparer votre site à des évolutions futures comme le headless WordPress.

Pour aller plus loin

Sécuriser l’API REST de WordPress est une étape importante, mais ce n’est qu’une partie des mesures à mettre en place pour protéger efficacement votre site. Une approche globale est essentielle pour éviter les vulnérabilités et renforcer la sécurité de votre WordPress.

Pour découvrir d’autres bonnes pratiques et méthodes essentielles, consultez mon guide complet : Comment sécuriser efficacement votre site WordPress.

Je sécurise votre site WordPress pour vous

Protéger un site WordPress demande du temps et des compétences techniques. Plutôt que de vous en occuper seul, confiez-moi la sécurisation de votre site pour éviter les risques et bénéficier d’une protection optimale.

Je mets en place les meilleures pratiques pour sécuriser votre WordPress, bloquer les tentatives d’attaques et assurer sa fiabilité sur le long terme.

J’ai besoin d’aide

Article précédent

Désactiver XML-RPC sur WordPress : pourquoi et comment ?

XML-RPC est une fonctionnalité qui permet d’interagir avec WordPress à distance. Cependant, elle peut être utilisée pour des attaques par force brute ou DDoS. Découvrez pourquoi il est souvent préférable de le désactiver et comment le faire avec ou sans plugin.
Lire l'article
Article suivant

Paysagistes : 5 raisons pour lesquelles votre entreprise a besoin d’un site internet

De nombreux paysagistes hésitent à créer un site internet, pourtant c’est un levier puissant pour attirer des clients et valoriser leur travail. Découvrez pourquoi un site bien conçu peut faire la différence et booster votre activité.
Lire l'article