La sécurité est un sujet central dans l’écosystème WordPress. Pourtant, beaucoup de sites restent exposés à des failles simples à exploiter… et souvent faciles à corriger.
Quand on parle de vulnérabilité WordPress, on pense souvent aux plugins mal sécurisés ou aux attaques complexes. Mais en réalité, certaines failles existent par défaut et peuvent permettre à un attaquant de récolter des informations précieuses avant même de tenter une intrusion.
Voici trois vulnérabilités très répandues que l’on retrouve sur de nombreux sites WordPress… et surtout comment les corriger rapidement.

Qu’est-ce qu’une énumération ?
Dans le contexte de la sécurité web, une énumération consiste à récupérer des informations publiques sur un site afin d’identifier des éléments exploitables. Sur WordPress, cela concerne très souvent les utilisateurs.
Concrètement, un attaquant va tester différentes URLs ou endpoints pour découvrir des données comme les noms d’utilisateur, les slugs d’auteur ou certaines informations exposées par l’API. Ces informations ne donnent pas directement accès au site, mais elles facilitent les étapes suivantes d’une attaque, notamment le bruteforce ou l’ingénierie sociale.
L’énumération est donc rarement une faille critique à elle seule. En revanche, combinée à d’autres vulnérabilités WordPress, elle peut considérablement augmenter les risques. C’est pour cette raison qu’il est recommandé de limiter au maximum les informations accessibles publiquement lorsque celles-ci ne sont pas nécessaires au fonctionnement du site.
C’est dans cette optique que nous allons voir ensemble trois vulnérabilités WordPress très courantes, souvent présentes sans que vous le sachiez, et surtout comment les corriger facilement sans casser le fonctionnement de votre site.
1. L’énumération d’utilisateurs via ?author=1
Pourquoi c’est une vulnérabilité WordPress fréquente ?
Par défaut, WordPress permet d’accéder aux archives d’un auteur via un paramètre simple :
https://tonsite.fr/?author=1
En modifiant ce chiffre, il devient possible de découvrir les slugs des utilisateurs du site.
Résultat : un attaquant peut récupérer des identifiants valides, ce qui facilite ensuite les attaques par force brute.
Même si cela ne donne pas directement accès au site, cela réduit fortement la surface d’incertitude pour un pirate.
Comment s’en prémunir facilement
Plusieurs solutions existent :
- Rediriger automatiquement les URLs ?author= vers la page d’accueil.
- Désactiver les archives auteurs si elles ne sont pas utiles.
- Utiliser un plugin de sécurité capable de bloquer l’énumération.
- Ajouter le snippet de code présent ci-après
Une simple règle de redirection côté serveur peut déjà limiter ce type d’exploitation.
Corriger cette faille avec quelques lignes de codes
Voici un snippet simple pour bloquer cette énumération (à ajouter dans functions.php par exemple) :
/**
* Bloquer l'énumération des auteurs via ?author=
*/
function wpcommunity_block_author_enum() {
if (!is_admin()) {
if (isset($_GET['author']) && is_numeric($_GET['author'])) {
wp_redirect(home_url(), 301);
exit;
}
}
}
add_action('init', 'wpcommunity_block_author_enum');
2. Énumération via l’API REST /wp-json/wp/v2/users
L’API REST WordPress est extrêmement puissante, mais certaines routes exposent publiquement des informations sensibles, notamment la liste des utilisateurs.
Une simple requête vers cette URL peut afficher les comptes publics du site :
/wp-json/wp/v2/users
Même si cela est utile pour certains usages, cela peut également faciliter les attaques ciblées.
Comment limiter l’accès public aux utilisateurs
/**
* Désactiver l'accès public aux utilisateurs via REST API
*/
function wpcommunity_disable_rest_user_enum($endpoints) {
if (isset($endpoints['/wp/v2/users'])) {
unset($endpoints['/wp/v2/users']);
}
if (isset($endpoints['/wp/v2/users/(?P<id>[\d]+)'])) {
unset($endpoints['/wp/v2/users/(?P<id>[\d]+)']);
}
return $endpoints;
}
add_filter('rest_endpoints', 'wpcommunity_disable_rest_user_enum');
Ce snippet empêche l’accès public aux utilisateurs tout en conservant le fonctionnement interne de WordPress.
3. Bruteforce facilité par les messages d’erreur de connexion
Par défaut, WordPress indique si le problème vient du mot de passe ou du nom d’utilisateur. Cela peut sembler anodin, mais ces informations aident énormément les robots à affiner leurs attaques.
Un message différent signifie qu’un attaquant peut vérifier si un compte existe avant même de tester des mots de passe.
Restreindre l’accès à l’adminitration via l’URL par défaut
La majorité des attaques bruteforce ciblent directement /wp-login.php ou /wp-admin, car ces URLs sont connues de tous. Plutôt que de développer une solution maison, il est fortement recommandé d’utiliser un plugin dédié.
Des extensions comme WPS Hide Login permettent de modifier facilement l’URL de connexion sans toucher au cœur de WordPress, ce qui réduit immédiatement le volume d’attaques automatisées.
Autre option plus complète : passer par un plugin de sécurité comme SecuPress, qui propose notamment :
- la protection contre les attaques bruteforce
- la personnalisation de l’URL de connexion
- le blocage des IP suspectes
- des recommandations de sécurité adaptées à WordPress
Ces solutions sont généralement plus fiables et maintenues dans le temps, contrairement à des snippets personnalisés qui peuvent casser lors des mises à jour.
Uniformiser les erreurs de connexion
/**
* Masquer les erreurs de connexion WordPress
*/
function wpcommunity_login_errors() {
return 'Identifiants incorrects.';
}
add_filter('login_errors', 'wpcommunity_login_errors');
Avec ce filtre, toutes les erreurs deviennent identiques, ce qui empêche l’énumération indirecte des comptes.
Bonus : ralentir les tentatives automatisées
/**
* Petit délai sur les tentatives de connexion
*/
function wpcommunity_login_delay($user, $username, $password) {
sleep(2);
return $user;
}
add_filter('authenticate', 'wpcommunity_login_delay', 30, 3);
Ajouter un délai réduit fortement l’efficacité des attaques bruteforce.
Où ajouter ces snippets ?
Si tu n’as pas l’habitude de modifier le code, tu peux ajouter ces corrections :
- dans le fichier functions.php de ton thème enfant
- dans un plugin personnalisé
- ou via un mu-plugin pour garder les modifications indépendantes du thème
Cette approche permet de corriger plusieurs vulnérabilités WordPress sans alourdir ton site avec de nouveaux plugins.
Des vulnérabilités simples… mais trop souvent oubliée
Ces trois exemples montrent que certaines vulnérabilités WordPress ne sont pas des failles critiques, mais plutôt des comportements par défaut qui méritent d’être adaptés selon ton niveau d’exigence en sécurité.
Corriger l’énumération des utilisateurs et limiter les informations visibles lors des connexions permet déjà de réduire une grande partie des attaques automatisées.
Ces bonnes pratiques ne remplacent pas une stratégie globale de sécurité WordPress, mais elles constituent une base solide pour protéger ton site efficacement.
Aller plus loin dans la sécurisation de votre site WordPress
Les vulnérabilités WordPress présentées dans cet article font partie des failles les plus fréquentes rencontrées sur les sites mal protégés. Mais la sécurité ne se limite pas uniquement à corriger quelques points techniques : elle repose aussi sur une approche globale, mêlant bonnes pratiques, configuration serveur et choix techniques adaptés.
Si vous souhaitez approfondir le sujet et découvrir comment renforcer la sécurité de votre site sans forcément multiplier les plugins, nous vous invitons à consulter cet article complémentaire :
🔗 Comment sécuriser son site WordPress sans plugin
Vous y découvrirez d’autres méthodes concrètes pour réduire la surface d’attaque de votre site, améliorer la gestion des accès, limiter les risques liés aux erreurs humaines et mettre en place une base solide pour la sécurité de votre WordPress.