La page wp-login.php est la cible la plus systématiquement attaquée d’un site WordPress. Les robots qui parcourent le web la trouvent en quelques secondes et lancent immédiatement des séries de tentatives de connexion automatiques, en testant des dizaines de milliers de combinaisons identifiant/mot de passe à la minute. Sur un site non protégé, les logs serveur montrent typiquement entre cinquante et plusieurs milliers de tentatives par jour, dont une partie issues de fuites de mots de passe disponibles sur des bases de données publiques. La parade existe et tient en cinq mesures combinées qui ramènent le risque d’intrusion par force brute à un niveau quasi nul. Chez Propuls’Lead, nous appliquons ces cinq mesures sur tous les sites WordPress que nous mettons en ligne ou que nous reprenons en maintenance.
Limiter le nombre de tentatives de connexion avec un plugin dédié
La mesure la plus efficace contre la force brute consiste à limiter le nombre de tentatives de connexion échouées par adresse IP avant blocage temporaire. WordPress n’intègre pas cette fonction par défaut : un attaquant peut donc tenter autant de combinaisons qu’il veut sans aucune limite. Un plugin comme Limit Login Attempts Reloaded, Loginizer ou WP Limit Login Attempts comble cette absence en quelques minutes d’installation.
Le paramétrage type bloque une IP après quatre tentatives échouées pendant vingt minutes, puis pendant vingt-quatre heures si le pattern se répète dans la même journée. Cette configuration rend toute attaque par force brute classique économiquement non viable pour un robot : il faudrait des milliers de proxies tournants et des semaines de patience pour tester un nombre intéressant de combinaisons. Dans la pratique, les robots passent à la cible suivante après quelques échecs.
Le suivi se fait via l’interface du plugin qui liste les IP bloquées, le nombre de tentatives détectées et les pays d’origine. Un coup d’œil mensuel sur ces logs révèle souvent que plusieurs centaines de tentatives ont été bloquées sans intervention. Notre article sur sécuriser son site WordPress avec les 10 actions qui bloquent 99 % des attaques revient sur l’écosystème de mesures qui entoure cette limitation.
Masquer la page de connexion en changeant l’URL d’accès
La deuxième mesure ne renforce pas la sécurité cryptographique mais retire le site du radar des scanners automatiques. WordPress installe par défaut la page de connexion sur l’URL standard /wp-login.php. Les robots qui scannent le web testent systématiquement cette URL sur chaque domaine pour identifier les installations WordPress. Changer l’URL de connexion (par exemple monsite.com/acces-prive) réduit drastiquement le volume d’attaques détectées par le site.
Le plugin WPS Hide Login est l’option la plus simple : installation, choix de la nouvelle URL, sauvegarde. La page wp-login.php renvoie alors une erreur 404 pour les visiteurs non authentifiés, ce qui rend invisible le point d’accès aux robots. Le plugin Login URL Custom propose la même fonction avec quelques options supplémentaires.
Cette mesure ne dispense pas des autres : un attaquant ciblé qui connaît l’URL secrète peut quand même tenter une force brute. Mais elle réduit le volume d’attaques détectées par 90 à 95 % en pratique, ce qui allège la charge serveur et la pollution des logs. Combinée à la limitation des tentatives, elle prive l’attaquant à la fois de cible et de bande passante. Notre article sur WordPress et les mots de passe, les règles de sécurité que les entrepreneurs ignorent revient sur la robustesse des mots de passe qui complète ce masquage.
Activer l’authentification à deux facteurs sur tous les comptes administrateurs
L’authentification à deux facteurs est la mesure qui bloque définitivement le risque d’intrusion par mot de passe compromis. Même si un attaquant réussit à obtenir l’identifiant et le mot de passe d’un compte (par fuite externe, par phishing, par malware sur le poste de l’utilisateur), il ne peut pas se connecter sans le second facteur qui reste hors de sa portée. Plusieurs plugins gratuits implémentent cette fonction : Wordfence (qui inclut le 2FA dans sa version gratuite), Two Factor Authentication, Google Authenticator ou miniOrange.
Le second facteur le plus simple à déployer est le TOTP (Time-based One-Time Password) via une application mobile comme Google Authenticator, Authy ou 1Password. L’utilisateur scanne un QR code lors de la configuration, et l’application génère ensuite un code à six chiffres qui change toutes les trente secondes. La connexion demande désormais l’identifiant, le mot de passe et ce code à six chiffres.
Cette mesure ajoute environ trois secondes à la connexion mais bloque 99 % des attaques par identifiants compromis. Pour une équipe de cinq administrateurs qui se connectent une fois par jour, cela représente moins d’une minute supplémentaire par mois et par utilisateur. Le coût opérationnel est négligeable au regard de la protection apportée. Notre article sur WordPress et la gestion des rôles utilisateurs revient sur la séparation des privilèges qui complète le 2FA.
Ajouter un captcha sur la page de connexion et masquer l’identifiant administrateur
Deux mesures complémentaires ajoutent une couche de friction qui élimine les derniers cas résiduels. Le captcha sur la page de connexion (Google reCAPTCHA v3 invisible, hCaptcha, ou solution intégrée à Wordfence) vérifie que le visiteur est humain avant d’accepter une tentative de connexion. Cette mesure bloque les robots qui ne savent pas résoudre un captcha, soit la grande majorité des attaques automatisées actuelles.
Le masquage de l’identifiant administrateur élimine quant à lui la moitié de l’information dont l’attaquant a besoin. Beaucoup de sites WordPress affichent l’identifiant de l’auteur sur les pages publiques (URL /author/admin/, signature d’article, page de profil). Un attaquant qui repère l’identifiant n’a plus qu’à deviner le mot de passe. Trois actions ferment cette fuite : ne jamais utiliser admin ou le prénom du propriétaire comme identifiant, désactiver les pages auteur publiques via un plugin SEO comme Yoast, et utiliser un alias public différent de l’identifiant de connexion via le champ « nom à afficher » du profil utilisateur.
Combinées, ces deux mesures rendent l’attaque par force brute pratiquement impossible : le robot ne peut pas franchir le captcha, et même s’il y parvenait, il ne connaît pas l’identifiant à attaquer. Notre article sur Wordfence vs Sucuri, quel plugin de sécurité WordPress choisir pour une PME revient sur les outils qui regroupent plusieurs de ces fonctions.
Industrialiser la protection dans la méthodologie PROPULSE
Dans le cadre de la méthodologie PROPULSE que nous appliquons chez Propuls’Lead, la protection de la page de connexion suit un protocole d’installation systématique en cinq étapes. Première étape : installation et configuration de Limit Login Attempts Reloaded avec quatre tentatives autorisées par tranche de vingt minutes. Deuxième étape : déploiement de WPS Hide Login avec une URL personnalisée propre au site, communiquée uniquement aux administrateurs.
Troisième étape : activation du 2FA via Wordfence (déjà installé pour le pare-feu) sur tous les comptes administrateurs et éditeurs. Quatrième étape : intégration du captcha invisible reCAPTCHA v3 sur la page de connexion. Cinquième étape : renommage de l’identifiant administrateur et masquage de l’auteur sur les pages publiques.
Cette installation prend environ deux heures par site pour un consultant expérimenté. Sur les sites que nous accompagnons, les logs montrent typiquement une chute du volume d’attaques détectées de 95 % dans les jours qui suivent le déploiement, et zéro intrusion réussie par force brute sur plusieurs années cumulées. Notre article sur WordPress et les sauvegardes automatiques revient sur le filet de sécurité qui complète cette protection préventive.
Ce qu’il faut retenir pour bloquer les attaques par force brute sur WordPress
La protection de la page de connexion WordPress repose sur la combinaison de mesures simples, pas sur une seule solution miracle. Cinq points clés à retenir : la limitation des tentatives de connexion via plugin rend toute attaque automatique économiquement non viable, le changement d’URL de connexion retire le site du radar des scanners et réduit le volume d’attaques de 90 %, l’authentification à deux facteurs bloque les intrusions par identifiants compromis, le captcha invisible filtre les robots qui ne savent pas le résoudre, le masquage de l’identifiant administrateur élimine la moitié de l’information dont l’attaquant a besoin. Chez Propuls’Lead, ces cinq mesures combinées ramènent le risque d’intrusion par force brute à un niveau quasi nul sur les sites WordPress de nos clients.
