Login Armor regroupe 12 modules de protection du login WordPress dans un seul plugin gratuit : masquage de l’URL de connexion, anti brute force avec verrouillage en cascade et blocage de sous-réseaux, pare-feu de requêtes 8G, 2FA natif TOTP et Email OTP, politique de mot de passe, gestion des sessions, 15 toggles de hardening, breach check Have I Been Pwned, géolocalisation IP, journal d’activité et notifications. S’y ajoute un briefing de sécurité IA optionnel (client IA natif WordPress 7). PHP 8.1+, GPL, zéro SaaS, zéro upsell, traduction française complète. Disponible sur WordPress.org.
Pas le temps ? Faites-le analyser par l'IA
wp-login.php : la cible n° 1 des attaques par force brute en 2026
Une attaque par force brute, sur WordPress, c'est une suite automatisée d'essais de mots de passe contre wp-login.php jusqu'à tomber sur la bonne combinaison. Rien de subtil, juste du volume. Et le volume, en 2026, est ahurissant.
Wordfence bloque plusieurs milliards d'attaques par force brute par mois sur son réseau. Patchstack a recensé 7 966 nouvelles vulnérabilités dans l'écosystème WordPress en 2024 (+34 % vs 2023), dont 43 % exploitables sans authentification. Et chez Sucuri, 55,2 % des sites compromis hébergeaient un compte administrateur WordPress malveillant, et 39,1 % tournaient sur un CMS obsolète au moment de l'infection. La tendance s'aggrave, dopée par les botnets pilotés par IA.
Vu de loin, ça peut paraître abstrait. Vu de près, c'est ton site. Si ta page /wp-login.php est exposée à l'URL standard, tu absorbes mécaniquement tout ce qui tourne. Les bots flaguent l'URL par défaut, lisent la version WordPress dans les meta tags, croisent ça avec une base de vulns connues, et te collent dans une file d'automatisation. Ce n'est pas une attaque ciblée. C'est de la tonte de pelouse à l'échelle du web.
Bon. La question n'est plus " est-ce que mon login est attaqué ? " mais " est-ce que mes défenses tiennent ? ". Et c'est exactement le sujet de cet article : un plugin construit pour ça, et seulement pour ça. Si tu es pressé et que tu veux directement aller à l'essentiel, Login Armor s'installe gratuitement depuis WordPress.org. Pour aller plus loin sur la sécurité globale d'une install, j'ai déjà publié un guide pour sécuriser WordPress étape par étape ainsi qu'un article dédié à la page de connexion WordPress.

Login Armor 2.4.0 par Fabrice Ducarme (auteur unique). Compatible WordPress 6.8 → 7.0 / PHP 8.1+. GPL, sans freemium, sans appel SaaS. Disponible sur WordPress.org. Télécharger sur WordPress.org →
D'où vient ce plugin (et pourquoi c'est moi qui en parle)
Soyons clairs dès le départ : Login Armor, c'est mon plugin. Et pas dans le sens " j'y ai contribué, j'en parle de loin ". Au sens fort : j'en suis l'auteur unique à 100 %, du premier fichier au dernier. C'est un plugin que j'ai écrit seul, sans co-auteur, et dont je suis le seul mainteneur aujourd'hui.
Pour le contexte. Il y a plusieurs années, j'ai co-créé deux plugins de sécurité du login que beaucoup de monde connaît : WPS Hide Login (plus de 2 millions d'installations actives) et WPS Limit Login (plusieurs centaines de milliers). Ces deux plugins ont été cédés à la marque WPServeur, qui en a la charge depuis. Je n'en suis plus le mainteneur, je n'y touche plus, et c'est très bien comme ça. Ils continuent leur vie sous une autre main.
L'autre déclencheur, c'est plus prosaïque. Sur chaque WordPress que j'installe, je commençais par le même rituel : WPS Hide Login pour cacher la page de connexion, WPS Limit Login pour bloquer la force brute, un plugin de 2FA pour le second facteur, et WP Activity Log pour voir qui a fait quoi sur le site. Quatre plugins à chaque fois, à maintenir, à mettre à jour, à reconfigurer un par un, avec quatre interfaces différentes, quatre cycles de release, quatre points de défaillance. Un jour, j'en ai eu marre. Et j'ai eu envie de réunir exactement ces quatre fonctions dans un seul plugin moderne. Pas plus. Pas moins.
Login Armor (version 2.4.0 aujourd'hui) est l'aboutissement de cette idée. Code modernisé en PHP 8.1+, zéro dépendance externe, zéro appel à un SaaS, zéro upsell, GPL à vie. Et écrit seul, justement parce que sur ce type d'outil j'avais besoin de ne pas négocier les choix.
Conflit d'intérêt assumé : ce que tu lis n'est pas un test indépendant. C'est un guide complet, par l'auteur. Et c'est peut-être précisément ce qui en fait l'intérêt. Qui mieux que moi peut te détailler ce que fait chaque module et pourquoi je l'ai conçu comme ça ? Si tu cherches une review pondérée à plusieurs voix, va lire les retours sur le forum WordPress.org. Ici, tu lis l'auteur.
Login Armor en une phrase : 12 modules, une seule extension
Login Armor est un plugin anti brute force WordPress qui sécurise tout le périmètre de l'authentification : la page de connexion, les tentatives, les comptes, le 2FA, l'audit, les notifications, et la ligne de commande. Douze modules de sécurité indépendants, plus un briefing de sécurité IA optionnel, un seul code, une seule fenêtre d'admin.

En voici l'essentiel, une ligne chacun :
- Hide Login : masque
wp-login.php / wp-adminderrière un slug aléatoire cryptographique - Brute Force Protection : verrouillage en cascade et blocage de sous-réseaux /24
- Hardening : 15 toggles de durcissement WordPress, en un clic
- Two-Factor Authentication : TOTP + Email OTP + codes de secours + appareils de confiance
- Login Page Security Headers : CSP, X-Frame-Options, Permissions-Policy sur la page de connexion
- Breach Check : vérification opt-in contre Have I Been Pwned en k-anonymat
- Detection Engine : reconnaissance automatique de 6 patterns d'attaque
- Activity Log : audit complet des actions d'administration
- Notifications : Email, Slack, Discord, webhook avec validation anti-SSRF
- Politique de mot de passe : longueur et complexité imposées, rejet optionnel des mots de passe déjà fuités
- Gestion des sessions : expiration sur inactivité, session unique, déconnexion à distance
- Géolocalisation IP : le pays d'origine affiché à côté des IP attaquantes
- Pare-feu de requêtes : filtre 8G en PHP, en mode surveillance d'abord, jamais de blocage des admins
Chaque module est activable indépendamment, et un score de sécurité de 0 à 100 te dit en temps réel où tu en es. À côté de ces douze modules, un assistant d'onboarding pose une base sûre en un clic, et un briefing de sécurité IA optionnel résume ton mois en langage clair. On y vient.
Protéger : 9 modules de défense active
Hide Login : masquer wp-login.php derrière un slug aléatoire
Premier réflexe en sécurité du login : ne pas être à l'adresse que tout le monde connaît. À la première activation, Login Armor génère un slug aléatoire de 8 caractères, dérivé d'une source cryptographique, et ouvre une modale de pré-activation avant de valider quoi que ce soit. Tu peux accepter le slug proposé, en générer un autre d'un clic, ou taper le tien. Option pratique : recevoir l'URL par mail au moment de l'activation, ce qui évite les classiques " zut, j'ai fermé l'onglet et je ne sais plus où c'est ".

Attention : coche bien l'option d'envoi par mail au moment de l'activation. Si tu fermes l'onglet sans noter le slug, tu te retrouves sur une 404 sans moyen évident d'accéder à ton admin. Heureusement, l'e-mail de récupération couvre ce cas, mais autant éviter le moment de panique.
Une fois activé, l'ancienne URL /wp-login.php ne redirige pas. Elle renvoie une 404 nette. Pourquoi pas une redirection ? Parce qu'une redirection bavarde laisse les bots comprendre où tu te caches. Une 404 silencieuse, ils passent leur chemin. Le flux de réinitialisation du mot de passe administrateur reste fonctionnel via le slug personnalisé, et un e-mail de récupération est disponible à la demande si l'admin a oublié son URL.
Brute Force Protection : verrouillage en cascade et anti-distribué
Le module phare. Il fait exactement ce que son nom indique, mais avec deux niveaux et une couverture étendue.
Niveau 1 : après un seuil configurable de tentatives échouées, l'IP est verrouillée pour 20 minutes (HTTP 429, Too Many Requests). Compteur de tentatives restantes affiché sur la page de connexion, page de verrouillage marquée Login Armor avec compte à rebours en direct. Niveau 2 : si l'IP récidive après le premier verrouillage, blacklist 24 heures (HTTP 403). Et pour les attaques distribuées qui tournent sur des dizaines d'IP voisines, blocage du sous-réseau /24 entier quand le pattern est détecté.

Ce qui change tout, c'est la couverture. Un anti brute force naïf ne surveille que le formulaire de login. Login Armor surveille six surfaces d'authentification : le login standard, la récupération de mot de passe (lost-password), le formulaire de reset, la création de compte (register), XML-RPC (avec neutralisation explicite de system.multicall qui sert à amplifier les attaques) et l'endpoint REST /wp-json/wp/v2/users qui sert à énumérer les comptes.
Whitelist d'IP de confiance disponible, configuration des seuils par site, et tout ça en SQL natif sans dépendance externe. Ce module à lui seul répond à la requête " plugin anti brute force WordPress ", et c'est volontaire. Ajout récent : chaque verrouillage crée désormais un incident à part entière, visible dans l'onglet Incidents, pour que rien ne passe sous le radar.
Hardening : 15 leviers WordPress en un clic

Réduction de la surface d'attaque (6 toggles) : désactiver XML-RPC quand tu ne t'en sers pas, couper les pingbacks et leur vecteur d'amplification, désactiver l'éditeur de fichiers du dashboard, masquer la version de WordPress (y compris le ?ver= sur les assets), désactiver les mots de passe d'application, obfusquer les slugs auteur (/?author=1 ne révèle plus rien).
Durcissement des identifiants (3 toggles) : masquer les messages d'erreur de login (qui révèlent si c'est l'email ou le mot de passe qui est faux), bloquer l'énumération d'auteurs via REST, bloquer la création de comptes avec des identifiants réservés (admin, root, test…), avec détection des homoglyphes Unicode et un éditeur dédié pour gérer ta propre liste.
Filtrage des requêtes (5 toggles) : bloquer l'exécution PHP dans /uploads, désactiver le directory listing, restreindre l'API REST aux utilisateurs authentifiés, protéger les fichiers système sensibles (wp-config.php, .htaccess), pot de miel anti-bot avec ban d'IP automatique 24 heures pour ceux qui mordent.
Surveillance des comptes (1 toggle) : être alerté dès qu'un compte est créé avec, ou promu au, rôle administrateur. Sur un site à plusieurs mains, c'est le genre de signal qui te fait gagner des heures quand quelque chose cloche.
Conseil : active les 15 toggles d'un coup en lot, et regarde quels services tu casses sur ton site. Tu désactives au cas par cas si quelque chose ne fonctionne plus. C'est plus rapide que d'activer un par un en testant chaque fois.
Two-Factor Authentication : 5 surfaces de protection
Login Armor inclut un module 2FA natif, sans dépendance externe et sans appel SaaS. Cinq surfaces de protection, qui couvrent les cas réels.
TOTP d'abord : compatible avec Google Authenticator, Authy, 1Password, Bitwarden et tout ce qui parle le standard RFC 6238. Le QR code est généré côté client, donc le secret ne quitte pas ton serveur.


Email OTP ensuite : un code à usage unique envoyé par mail si l'utilisateur n'a pas de TOTP. Codes de secours téléchargeables au moment de l'enrôlement, à imprimer et à ranger ailleurs. Appareils de confiance : possibilité de sauter le 2FA sur les navigateurs reconnus pendant trente jours, avec auto-révocation au reset du mot de passe ou à la rotation d'AUTH_KEY dans wp-config.php. Procédure de récupération admin enfin : si le premier admin du site perd tout, un lien signé à usage unique est envoyé à son email d'admin, valable une fois, expirant en 30 minutes.
Forçage par rôle (Administrator, Editor, Author, etc.) avec une période de grâce configurable pour laisser le temps aux utilisateurs de s'enrôler. Rate limiting sur la vérification : 10 échecs par fenêtre glissante de 15 minutes par IP, au-delà l'IP est verrouillée. Pour aller plus loin sur la 2FA en général, j'ai écrit un guide complet sur la 2FA WordPress qui couvre tous les plugins du marché.
Important : télécharge tes codes de secours au moment de l'enrôlement et range-les hors de ton site (gestionnaire de mots de passe ou impression). Sans eux et sans accès à l'email d'admin, la seule porte de récupération qui reste, c'est WP-CLI en SSH. Mieux vaut prévoir avant que constater après.
Login Page Security Headers : CSP, X-Frame-Options, Permissions-Policy
Petit module, gros impact. Login Armor pose plusieurs en-têtes HTTP de sécurité uniquement sur wp-login.php (pas sur tout le site, pour éviter de casser un thème ou un constructeur de pages) : Content Security Policy strict, X-Frame-Options en DENY pour empêcher l'iframe et donc le clickjacking, Permissions-Policy pour couper les API navigateur sensibles, plus Referrer-Policy et X-Content-Type-Options.
Deux préréglages : standard (compatible avec la plupart des installations) et strict (pour les paranoïaques). À activer une fois, oublier après. Ça bloque l'extraction de credentials via iframe malveillante et ça ferme la porte au MIME-sniffing de fichiers exotiques uploadés en /uploads. Nouveauté : les en-têtes de base (tous sauf la CSP) peuvent désormais être étendus à tout le site, et plus seulement à la page de connexion, si tu veux pousser la protection au-delà du login.
Breach Check : Have I Been Pwned en k-anonymat (opt-in)
Tu te souviens des fuites Yahoo, LinkedIn, Adobe, Dropbox, Last.fm, Tumblr ? Le mot de passe que tes utilisateurs réutilisent depuis 2014 est probablement dans une base publique. Login Armor peut vérifier ça, avec une garantie de confidentialité réelle.
Le mécanisme s'appelle k-anonymity. Quand un utilisateur se connecte ou crée un compte, Login Armor calcule le SHA-1 de son mot de passe en local, n'envoie à Have I Been Pwned que les 5 premiers caractères du hash, reçoit en retour environ 500 hashes candidats, et compare en local pour voir si le hash complet matche. Le mot de passe en clair ne sort jamais du serveur. Le hash complet ne sort jamais non plus. Aucun compte HIBP requis, aucune clé API.
Vérification optionnelle des emails à la création de compte ou au changement d'adresse via XposedOrNot, même logique. Fail-soft : si l'API ne répond pas en 3 secondes, on laisse passer (pas question de bloquer un login parce qu'un service tiers est down). Cache 24 heures pour ne pas repinger pour rien. Notice factuelle non alarmiste affichée à l'utilisateur (" ce mot de passe est apparu dans une fuite publique connue "), avec option de forcer la réinitialisation. Mais le compte n'est jamais verrouillé. C'est un signal, pas une sanction.

Politique de mot de passe : forte et unique, à chaque point d'entrée
Un anti brute force protège la porte. Une politique de mot de passe protège la serrure elle-même. Login Armor impose des mots de passe forts à chaque endroit où WordPress en définit un : inscription, mise à jour du profil, réinitialisation. Tu fixes une longueur minimale et les classes de caractères exigées (minuscule, majuscule, chiffre, symbole), et tu interdis l'identifiant à l'intérieur du mot de passe (fini les jdupont / Jdupont2026).
Option supplémentaire : rejeter les mots de passe déjà présents dans des fuites publiques, via la même recherche k-anonymat sur Have I Been Pwned que le module Breach Check, et toujours sans que le mot de passe ne quitte ton serveur. Une expiration optionnelle invite à renouveler un mot de passe trop ancien, sans jamais verrouiller personne dehors : c'est une incitation, pas un couperet.
Gestion des sessions : fermer les portes restées ouvertes
Le scénario classique : un compte resté connecté sur un poste partagé, un onglet oublié dans un cybercafé, un portable perdu avec la session encore active. Login Armor déconnecte les comptes après un délai d'inactivité que tu configures, mesuré sur les vrais chargements de page pour qu'un onglet laissé ouvert finisse quand même par expirer.
Tu peux aussi plafonner la durée de vie maximale d'une connexion, indépendamment du " se souvenir de moi ", et limiter chaque compte à un seul appareil actif : une connexion ailleurs met fin à toutes les autres sessions. Et un bouton " déconnecter tous les autres appareils " en un clic, pour le jour où tu te demandes si ton compte traîne encore quelque part.

Pare-feu de requêtes : un filtre 8G qui bloque avant que WordPress charge
C'est la grosse nouveauté de la 2.4.0, et celle qui place Login Armor au niveau de fonctions qu'on ne trouvait jusqu'ici que dans les suites payantes. Un filtre de requêtes PHP optionnel, inspiré du célèbre pare-feu 8G, qui bloque le trafic malveillant courant : mauvaises chaînes de requête (injection SQL, exécution de code, traversée de répertoires, XSS), chemins suspects, méthodes HTTP non autorisées, et règles user-agent ou referrer en option. Le tout avant même que WordPress ait fini de charger.
Comme il tourne en PHP, il fonctionne aussi bien sur Apache que Nginx ou LiteSpeed, sans toucher à ta config serveur. Chaque blocage est journalisé dans ton tableau de bord, agrégé en un incident par IP et par heure (jamais une ligne par requête, pour ne pas noyer la base sous le bruit des scanners).
Et c'est là que l'approche est plus prudente que la moyenne. Le module est désactivé par défaut, et quand tu l'actives, il démarre d'abord en mode surveillance : les blocages potentiels sont journalisés sans rien bloquer, pour que tu valides sur ton vrai trafic avant de passer en application. Les administrateurs connectés ne sont jamais filtrés, REST, cron et WP-CLI sont ignorés, et une liste d'autorisation par IP ou par chemin (avec support CIDR) gère les cas particuliers. Volontairement non noté dans le score : c'est une couche bonus que tu actives en connaissance de cause.

Conseil : laisse le pare-feu en mode surveillance une bonne semaine avant de l'activer pour de bon. Tu repères ainsi les éventuels faux positifs (un plugin légitime, une intégration tierce) et tu les ajoutes à la liste d'autorisation, sans jamais risquer de couper l'accès à un visiteur légitime.
Surveiller : 6 modules d'observation
Protéger c'est bien. Voir ce qui se passe, c'est mieux. Sans visibilité tu ne sauras jamais si tes défenses tiennent ou si tu nages dans une attaque depuis trois semaines.
Detection Engine : 6 patterns reconnus automatiquement
Le moteur tourne en arrière-plan et corrèle les évènements bruts pour reconnaître 6 patterns d'attaque : force brute classique (volume + même IP), credential stuffing (volume + IPs distinctes + même username), énumération (passage en revue des auteurs et endpoints), attaque distribuée (IP voisines /24 ou ASN identique), attaque post-compromission (un compte légitime se met soudain à scraper l'admin), et attaque ciblée (peu de volume, une IP, un username précis).
Chaque pattern reçoit un niveau de sévérité (info, warning, critical) et une recommandation d'action. Tu n'as pas à corréler à la main dans un journal de 50 000 lignes. C'est fait pour toi.
Incidents Dashboard : 1 ligne par attaque, pas par évènement

Le piège classique d'un journal de sécurité, c'est qu'il liste tous les évènements. 4 000 lignes de tentatives échouées, et tu cherches le grain de sable. Login Armor fait l'inverse : un incident = une attaque, regroupée par pattern. Si une force brute distribuée envoie 2 800 tentatives sur 12 heures depuis 47 IP voisines, tu vois une ligne. Pas 2 800.
Sur la capture ci-dessus, un cas typique : un pattern POST COMPROMISE flaggé en CRITICAL, 4 tentatives, 1 IP, 1 username (admin). Une seule carte, et tu sais déjà ce qu'il faut investiguer. Drill-down complet quand tu cliques : chronologie corrélée minute par minute, badges MATCH et RELATED qui relient les récidives, pastilles " IP verrouillée " et " Sous-réseau bloqué " directement sur la carte. Et surtout, des actions inline : Investigate, Block subnet, Unblock IP, Mark resolved, Ignore. Tu ne sors jamais de la vue.

Le drill-down ci-dessus raconte l'attaque qui devrait te glacer le sang : 4 échecs de mot de passe en 4 secondes, puis un succès. Pattern POST COMPROMISE, parce que c'est exactement la signature d'un compte qui vient de tomber. Le panneau " What happened " te résume la situation, " What to do " te dit immédiatement la bonne action (reset du mot de passe + audit des modifs récentes), et les suggested actions sont prêtes à être déclenchées en un clic. Quand tu fais de la sécurité opérationnelle sur 30 sites, ça change la vie.
Events Log : journal complet, filtres et export CSV

Pour le grain fin quand tu en as besoin. Toutes les tentatives de connexion (réussies et échouées) y passent, avec horodatage à la seconde, IP (IPv6 supporté en affichage propre, je tiens à le préciser parce que c'est un classique des plugins qui le tronquent), user agent, username tenté, statut, et lien vers l'incident parent quand il y en a un.
Filtres : statut (succès, échec, verrouillage), IP (exact ou pattern), identifiant tenté, période (dernière heure, 24h, 7 jours, 30 jours, custom), recherche libre. Export CSV en un clic pour balancer le tout dans un tableur ou dans un SIEM. Rétention configurable indépendamment du log d'activité (j'y viens).
Activity Log : audit complet des actions admin

L'Events Log surveille le login. L'Activity Log surveille tout le reste de l'admin. Création, modification ou suppression d'un utilisateur, changement de rôle, publication ou suppression d'un article, upload ou suppression d'un média, install ou activation d'un plugin, switch de thème, modification d'options critiques. Avec à chaque fois : qui, quoi, quand, depuis quelle IP, et la valeur avant/après quand c'est pertinent.
Sur un site multi-utilisateurs, c'est ce qui te permet de répondre à la question " qui a touché à ça ? " sans deviner. Rétention configurable séparément (par défaut 90 jours). Export CSV. Compatible RGPD : tu peux purger sur demande tous les logs liés à un identifiant pour traiter une demande de droit à l'oubli sans tout effacer.
Dashboard Widget : 6 indicateurs sur l'accueil admin

Petit mais utile. Sur l'accueil de l'admin WordPress, un widget Login Armor affiche six indicateurs en un coup d'œil : statut global (PROTECTED, AT RISK, VULNERABLE), tentatives bloquées sur 24 heures, incidents ouverts, nombre d'IP verrouillées en cours, taux d'adoption 2FA des comptes administrateurs, et score de sécurité 0-100.
Sparkline 14 jours sur les tentatives bloquées pour voir la tendance d'un coup d'œil. Et un CTA " Quick win " contextuel : si tu n'as pas activé Hide Login, le widget te le dit avec le gain de score chiffré (" Activer Hide Login = +15 points "). Tu cliques, c'est fait.
Géolocalisation IP : d'où viennent les attaques, d'un coup d'œil
Quand tu regardes une liste d'IP attaquantes, une colonne de chiffres ne raconte pas grand-chose. Login Armor affiche le pays d'origine à côté de chaque IP dans les onglets Incidents et Événements : tu vois tout de suite si la pression vient d'un même pays, d'un botnet éparpillé, ou d'une IP isolée près de chez toi.
Le module est pensé pour rester discret : les recherches sont paresseuses (déclenchées seulement quand tu ouvres l'écran), mises en cache trente jours et plafonnées par chargement de page, donc une IP donnée n'est interrogée qu'une fois par mois au maximum. Les plages privées et réservées ne sont jamais envoyées. Par défaut, la résolution passe par l'API ipwho.is (sans clé), et un filtre login_armor_geoip_lookup permet aux développeurs de brancher une base hors ligne pour zéro appel externe.

Piloter : 4 modules de contrôle
Assistant de configuration : une base sûre en un clic
La critique classique des plugins de sécurité, c'est qu'ils sont trop touffus pour un débutant : trente cases à cocher, et la peur de se verrouiller dehors à la première mauvaise. Login Armor répond avec un assistant en un écran, qui s'ouvre à la première activation.
Deux voies. La voie Simple active en un clic les essentiels sans risque : force brute, détection, en-têtes de connexion, journal d'activité et les sept bascules de renforcement les plus sûres, sans jamais toucher au masquage de connexion, à la 2FA ni au pare-feu (les trois modules qui peuvent t'enfermer dehors si tu vas trop vite). La voie Avancée te laisse tout régler à la main. Le même bouton " Appliquer la base sûre " reste accessible à tout moment depuis l'onglet Réglages, et les sites déjà en place qui se mettent à jour ne voient jamais l'assistant. Un débutant est protégé en quelques secondes, sans risque de se claquer la porte au nez.

Notifications multi-canaux
Tu ne vas pas vivre dans le dashboard Login Armor. Donc le plugin pousse les évènements importants là où tu es vraiment. Quatre canaux : email (vers une ou plusieurs adresses, configurable par sévérité), Slack (webhook entrant), Discord (webhook entrant), et un webhook générique pour ton outil maison ou ton SIEM.
Le webhook générique embarque une validation d'URL anti-SSRF native : impossible de pointer un webhook vers localhost, 127.0.0.1, des IP privées (10.x, 192.168.x, 172.16-31.x), ni vers les IP de service cloud sensibles (169.254.169.254 et compagnie). Limitation de débit par canal pour ne pas spammer (un canal Slack noyé sous 200 alertes en 5 minutes, c'est juste un canal qu'on désactive). Configuration fine : tu peux dire " pour Slack, seulement les sévérités critical ", " pour email, info+ ", " pour le webhook, tout ".
WP-CLI pour scripts et urgences SSH
Pour les sites où tu travailles en SSH, ou pour automatiser via CI, Login Armor expose une suite WP-CLI complète. Les sous-commandes principales :
wp login-armor status # État des modules + score
wp login-armor reset-slug --slug=ma-cle # Change le slug Hide Login
wp login-armor unblock 203.0.113.42 # Déverrouille une IP
wp login-armor whitelist add 198.51.100.0/24 # Ajoute un sous-réseau
wp login-armor incidents list --status=active
wp login-armor purge-logs --days=30
wp login-armor 2fa reset ton-login # Réinitialise le 2FA d'un compte
wp login-armor 2fa devices list ton-login
wp login-armor hardening honeypot status # État du pot de miel anti-bot
C'est précieux dans deux cas : la gestion en lot sur 50 sites (script bash + WP-CLI distant), et la récupération d'urgence quand tu es enfermé dehors et que tu accèdes à ton serveur en SSH. wp login-armor 2fa reset ton-login, et tu rentres. À mettre dans la liste des choses qui te sauvent à 2h du matin.
Score de sécurité 0-100 : un guide d'activation contextuel

Score pondéré, calculé en fonction des modules défensifs réellement activés et du renforcement. Les deux nouveaux venus orientés comptes, la politique de mot de passe et la gestion des sessions, pèsent désormais dans le calcul (respectivement 9 et 6 points), les pondérations ayant été rééquilibrées pour rester sur un total de 100. Les fonctions d'observabilité, elles, ne sont volontairement pas notées : géolocalisation IP, notifications et briefing IA t'informent sans gonfler artificiellement ton score.
Un anneau de progression sur l'écran Settings, et des suggestions contextuelles directement à côté du toggle correspondant. Du genre " Activer Hide Login ferait passer ton score de 56 à 71 ". C'est bête, mais c'est ce qui transforme un plugin de sécurité en assistant qui te tire vers le haut au lieu d'un panel de cases à cocher dont tu ne sais pas par où commencer.
Le plus 2026 : un briefing de sécurité écrit par l'IA
Voir les incidents, c'est une chose. Comprendre en trente secondes ce qu'ils racontent et quoi faire en premier, c'en est une autre. La 2.4.0 ajoute une couche d'analyse strictement optionnelle, bâtie sur le client IA natif de WordPress 7. Depuis la vue d'ensemble, un clic transforme tes trente derniers jours d'activité réelle en un briefing de sécurité en langage clair : un verdict sur ton site, le panorama des adresses IP (lesquelles t'attaquent, lesquelles ne sont pas encore bloquées) et une courte liste d'actions prioritaires. Sur un incident précis, " Expliquer avec l'IA " fait la même chose pour cette attaque-là.

Trois choix de conception comptent ici, et ils sont assez rares pour mériter d'être soulignés :
- La confidentialité d'abord. Le mode minimisé est celui par défaut : seuls des signaux anonymisés quittent ton site, jamais une adresse IP ni un identifiant en clair. Le mode approfondi (IP réelles et détails d'événements) est un choix explicite, jamais activé à ta place.
- Aucune clé API, aucun verrouillage. Login Armor ne stocke aucune clé et n'appelle aucun service propre. Il s'appuie sur le connecteur IA que tu as configuré dans ton propre WordPress : le choix du fournisseur et le coût restent les tiens.
- Utile avec ou sans IA. Le briefing s'ouvre toujours sur un instantané de faits déterministes : activité de connexion, connexions légitimes, incidents, 2FA, renforcement, changements admin et santé du site (PHP, MySQL, WordPress, mises à jour en attente). Sans connecteur IA, ces faits restent affichés ; seul le verdict rédigé demande l'IA.

Sous le capot : ce qui rend Login Armor différent
Pile technique et compatibilités
Login Armor demande PHP 8.1 ou plus, et tourne sur WordPress 6.8+, testé jusqu'à WordPress 7.0. Tu peux donc passer à la 7.0 sans attendre une mise à jour du plugin. Multisite-ready, sous-domaine et sous-répertoire, avec configuration indépendante par site (chaque site a ses modules, ses journaux, ses seuils). Compatibilité reverse proxy native : la détection de l'IP cliente via X-Forwarded-For est configurable (chaîne d'IP de confiance), ce qui fait que derrière Cloudflare ou un load balancer tu logges la vraie IP, pas celle du proxy.
Zéro dépendance, zéro SaaS, zéro upsell, GPL à vie
Pas de dossier vendor/ Composer dans le plugin. Pas de bundle JavaScript lourd téléchargé depuis un CDN externe. Aucun appel à un SaaS, sauf opt-in explicite pour Breach Check (HIBP et XposedOrNot, déjà détaillé). Aucune version premium, aucune popup d'upsell, aucun tracking, aucune télémétrie. GPL à vie.
Côté stockage : des tables custom préfixées login_armor_ dans la base WordPress (login_armor_logs pour les tentatives, login_armor_incidents, login_armor_activity, plus la file d'attente des webhooks). Rien ne quitte le serveur. Rétention configurable, purge automatique, export CSV à la demande. C'est ton site, c'est ta donnée.
Empreinte runtime maîtrisée
Sur un flux de connexion normal, Login Armor ajoute moins de 2 millisecondes de SQL, mesuré sur un serveur PHP 8.2 / MariaDB 10.6 standard. Les hot paths sont indexés, les compteurs de tentatives utilisent du SQL incrémental (pas de SELECT avant UPDATE), et le moteur de détection tourne en hook différé pour ne pas bloquer la requête de login.
Traduction française complète : près de 1 400 chaînes
Détail qui n'en est pas un. Le plugin est développé en source anglaise (US) et intégralement traduit en français : environ 1 400 chaînes dans le catalogue fr_FR (le périmètre a grossi avec les nouveaux modules), conformes au glossaire Polyglots WordPress FR. Écriture épicène, apostrophes courbes, espaces insécables avant les ponctuations doubles, majuscules accentuées (À, É, È, Ç). C'est plus de boulot que de coller le tout dans Google Translate, mais sur un plugin qu'on installe pour un public français (admins de sites associatifs, indépendants, agences), ça change la perception.
Login Armor face à ses ancêtres : WPS Hide Login + WPS Limit Login
Comme indiqué plus haut, j'ai été co-créateur de WPS Hide Login et WPS Limit Login, deux plugins que je ne maintiens plus (c'est WPServeur qui en a la charge). Login Armor ne cherche pas à les remplacer ni à les attaquer. Il propose autre chose. Voici factuellement ce qui change.
| Fonctionnalité | WPS Hide Login | WPS Limit Login | Login Armor 2.4.0 |
|---|---|---|---|
Masquage de wp-login.php | Oui | Non | ✅ Oui |
| Slug aléatoire crypto à l'activation | Non | Non | ✅ Oui (8 caractères) |
| Modale de pré-activation (choix slug) | Non | Non | ✅ Oui |
| Limitation des tentatives | Non | Oui | ✅ Oui |
| Verrouillage à 2 niveaux (20 min + 24 h) | Non | Non | ✅ Oui |
| Blocage de sous-réseaux /24 | Non | Non | ✅ Oui |
| Couverture XML-RPC + REST users | Non | Partielle | ✅ Oui |
| Hardening WordPress (toggles dédiés) | Non | Non | ✅ 15 toggles |
| 2FA natif (TOTP + Email + codes) | Non | Non | ✅ Oui |
| Appareils de confiance + récup admin | Non | Non | ✅ Oui |
| Breach Check (HIBP + XposedOrNot) | Non | Non | ✅ Oui (opt-in) |
| Headers de sécurité sur la page de connexion | Non | Non | ✅ Oui |
| Detection Engine (6 patterns) | Non | Non | ✅ Oui |
| Activity Log admin | Non | Non | ✅ Oui |
| Notifications Slack / Discord / webhook | Non | Non | ✅ Oui |
| Suite WP-CLI dédiée | Non | Non | ✅ Oui |
| Score de sécurité 0-100 | Non | Non | ✅ Oui |
| Politique de mot de passe (longueur + complexité + HIBP) | Non | Non | ✅ Oui |
| Gestion des sessions (timeout, session unique) | Non | Non | ✅ Oui |
| Pare-feu de requêtes (filtre 8G PHP) | Non | Non | ✅ Oui |
| Géolocalisation IP des attaquants | Non | Non | ✅ Oui |
| Assistant d'onboarding (base sûre) | Non | Non | ✅ Oui |
| Multisite (sous-domaine + sous-répertoire) | Oui | Oui | Oui |
| Zéro appel SaaS | Oui | Oui | Oui (sauf opt-in) |
Bref. WPS Hide Login fait très bien le masquage d'URL, point. WPS Limit Login fait très bien la limitation de tentatives basique, point. Ce sont des outils mono-fonction, et c'est leur force : tu en installes un, il fait son job. Login Armor s'adresse à ceux qui veulent réunir tout le périmètre auth dans un seul plugin moderne, avec tout ce que la décennie écoulée m'a appris sur ce qui manque dans cette catégorie.
Et une chose que je tiens à préciser : Login Armor n'est pas un couteau-suisse. Tu vois certaines extensions empiler 75, 100, parfois 150 fonctions dans un seul plugin (gestion login + scan malware + WAF + cache + SEO + analytics + capture de leads + et et et…). C'est dangereux. Plus la surface fonctionnelle est large, plus la surface d'attaque l'est aussi, plus les dépendances s'accumulent, et plus l'audit de sécurité du plugin lui-même devient difficile à tenir dans la durée. Login Armor regroupe certes douze modules, mais tous tournent autour d'un seul périmètre : l'authentification, la connexion, et les logs liés au login WordPress. Une fonction globale, oui, mais une fonction extrêmement ciblée. Ce qui me permet, à moi en tant qu'auteur unique, de garder l'audit de sécurité du plugin tractable, et son suivi à long terme tenable. Différent, pas mieux. Selon ce que tu cherches.
Et face aux suites all-in-one : Wordfence, Solid Security, AIOS
Là on parle d'un autre étage. Wordfence, Solid Security (ex iThemes Security) et All-In-One WP Security sont des suites de sécurité complètes : Web Application Firewall, scan de malware, intégrité des fichiers, IP reputation, parfois protection DDoS au niveau app. Elles couvrent un spectre large, login inclus.
Login Armor ne joue pas dans la même catégorie. Il se concentre sur l'authentification, et seulement ça, avec douze modules spécialisés, sans bloat, sans freemium, sans appel SaaS. C'est complémentaire d'un WAF généraliste, pas concurrent. Si ton site critique mérite un WAF + un scan + un audit fichier, prends Wordfence ou équivalent. Si le login est ton sujet (et c'est le cas sur la grande majorité des sites WordPress moyens, à supposer que tu ne stockes pas de données médicales ou bancaires côté serveur), Login Armor + un bon fichier .htaccess suffisent (j'ai écrit un guide sur les règles htaccess essentielles qui complète bien le tableau).
La 2.4.0 resserre quand même l'écart sur les deux points qui distinguaient encore les suites payantes : Login Armor embarque désormais un pare-feu de requêtes (le filtre 8G décrit plus haut) et un assistant d'onboarding Simple ou Avancé, tout en restant gratuit, GPL et open source sur WordPress.org. Douze modules là où une suite payante en expose en général cinq ou six derrière un paywall. Et pour t'éviter les conflits, Login Armor détecte les autres extensions de sécurité axées connexion (Wordfence, Solid Security, Sucuri, All-In-One Security, SecuPress) et te prévient des protections qui se chevauchent ; il t'alerte aussi quand un plugin de cache (WP Rocket, LiteSpeed Cache, W3 Total Cache) risque d'interférer avec le masquage de connexion.
Installation et activation : 5 minutes chrono
Workflow standard, pas de magie noire.
- Dans ton admin, Extensions → Ajouter une extension, recherche
Login Armor - Installer, puis Activer
- Une modale de pré-activation Hide Login s'ouvre : accepte le slug aléatoire proposé ou tape le tien, coche " M'envoyer l'URL par mail " si tu veux la garder
- Tu arrives sur le tableau de bord, score initial autour de 30 (Hide Login activé, le reste à faire)
- Onglet 2FA, active-le pour ton compte (TOTP recommandé, scanne le QR code avec Authy ou 1Password)
- Onglet Hardening, active les 15 toggles en lot (bouton " Enable all ")
- Onglet Brute Force, garde les seuils par défaut, ils sont sains
- Retour au dashboard : ton score est maintenant entre 75 et 90
Pour les fans de la ligne de commande, raccourci :
wp plugin install login-armor --activate
wp login-armor status
Et tu pilotes le reste de WP-CLI.
Pour qui c'est fait, pour qui ce n'est pas la bonne réponse
Login Armor te parle si tu gères un site WordPress avec un espace admin actif : multi-utilisateurs, agence avec plusieurs comptes, freelance qui jongle entre clients, e-commerce avec des comptes clients qui se connectent, multisite, formateur ou enseignant avec des étudiants qui ont des accès. Si tu es allergique aux SaaS, aux upsells de plugins gratuits-mais-pas-vraiment, et aux popups " unlock the full feature ", tu vas être bien.
Ce n'est pas la bonne réponse si ton site est une plaquette 100 % statique sans login pour personne (genre site vitrine de TPE avec 3 pages, l'admin se connecte une fois par mois). Tu n'as pas besoin de douze modules pour ça, un Hide Login simple suffit. Et ce n'est pas non plus la bonne réponse si tu cherches un WAF complet avec scan de malware : Login Armor ne le fait pas, prends une suite all-in-one en complément.
Aucun durcissement sécurité ne remplace une sauvegarde WordPress testée et stockée hors-site. Ces deux briques (durcissement du login + sauvegardes hors-site) sont intégrées à notre Maintenance WordPress sous SLA, si vous préférez ne pas les orchestrer vous-même.
Ce qui a changé depuis le printemps 2026
Login Armor avance vite. Depuis la première version publiée fin avril, trois mises à jour majeures ont élargi le périmètre, toutes rétrocompatibles et désactivées par défaut : rien ne bouge sur ton site tant que tu n'actives pas.
- 2.2.0 (15 juin 2026) : le briefing de sécurité IA, bâti sur le client IA natif de WordPress 7, sans clé API.
- 2.3.0 (16 juin 2026) : la politique de mot de passe, la gestion des sessions et la géolocalisation IP ; le renforcement passe de 13 à 15 bascules et le score est rééquilibré.
- 2.4.0 (17 juin 2026) : le pare-feu de requêtes (filtre 8G en PHP), l'assistant d'onboarding avec sa base sûre, des aides contextuelles dans l'interface, et une détection de conflits devenue granulaire.
Questions fréquentes
Login Armor remplace-t-il Wordfence ?
Non. Wordfence est un WAF avec scan de malware et intégrité des fichiers. Login Armor sécurise uniquement le périmètre de l'authentification (login, 2FA, hardening, audit). Les deux peuvent cohabiter sans conflit, et c'est même la combinaison que je recommande sur des sites sensibles.
Login Armor est-il compatible avec Cloudflare ou un reverse proxy ?
Oui. La détection de l'IP cliente via X-Forwarded-For est configurable, avec une chaîne d'IP de confiance pour éviter le spoofing. Tu loggues la vraie IP utilisateur, pas celle du proxy.
Que se passe-t-il si je perds l'accès à mon 2FA ?
Trois filets de sécurité, dans cet ordre : les codes de secours téléchargés à l'enrôlement, la procédure de récupération admin par lien signé envoyé à l'email du premier admin du site, et en dernier recours wp login-armor 2fa reset ton-login en SSH si tu as un accès serveur. Tu ne te retrouveras pas verrouillé dehors.
Les logs prennent combien de place dans la base de données ?
Trois tables custom (events, incidents, activity), avec rétention configurable. Sur un site moyen avec environ 1 000 logins par mois, ça représente quelques mégaoctets sur l'année. Sur un site très exposé (plusieurs milliers de tentatives quotidiennes), prévois 50 à 200 Mo annuels et active la purge automatique.
Login Armor envoie-t-il des données à un serveur tiers ?
Non par défaut. Aucune télémétrie, aucun tracking, aucun appel sortant en fonctionnement standard. Le seul cas où une requête sort, c'est si tu actives Breach Check (opt-in explicite) : alors Login Armor envoie les 5 premiers caractères du SHA-1 d'un mot de passe à Have I Been Pwned, ou les 5 premiers caractères du hash d'un email à XposedOrNot. Ni le mot de passe en clair ni le hash complet ne quittent ton serveur.
Login Armor est-il vraiment écrit par toi seul ?
Oui. C'est mon plugin solo, du premier au dernier fichier. À la différence de WPS Hide Login et WPS Limit Login dont j'étais co-auteur (et que j'ai cédés à WPServeur), Login Armor est entièrement écrit, maintenu et signé par moi. Pour la veille sécurité plus large autour de WordPress, j'entretiens aussi un outil dédié à la veille sécurité WordPress qui tourne en monitoring permanent.
Le pare-feu de requêtes peut-il casser mon site ?
Non, sauf si tu le décides toi-même. Le pare-feu est désactivé par défaut, et quand tu l'actives il démarre en mode surveillance : il journalise ce qu'il bloquerait sans rien bloquer, le temps que tu valides sur ton vrai trafic. Les administrateurs connectés ne sont jamais filtrés, et une liste d'autorisation par IP ou par chemin (avec support CIDR) gère les cas particuliers. Tu ne passes en mode application que quand tu es sûr de toi.
Le briefing IA envoie-t-il mes données à un tiers ?
Seulement si tu cliques sur le bouton d'analyse, et seulement vers ton propre connecteur IA configuré dans WordPress 7. Par défaut, le mode minimisé n'envoie que des signaux anonymisés, jamais une IP ni un identifiant en clair. Login Armor ne stocke aucune clé API et n'appelle aucun service de son côté : le fournisseur et le coût restent les tiens. Et sans connecteur IA, l'écran reste utile : il affiche l'instantané de faits déterministes, seul le verdict rédigé demande l'IA.
Suis-je obligé de tout configurer à la main ?
Non. À la première activation, l'assistant te propose une base sûre en un clic (voie Simple) qui active les essentiels sans risque, sans toucher au masquage de connexion, à la 2FA ni au pare-feu. Le reste des modules est en opt-in : tu les actives quand tu veux, à ton rythme, et le score de sécurité te guide vers la prochaine action utile.
Disponibilité et téléchargement
Login Armor est disponible sur WordPress.org depuis le 28 avril 2026, et la version actuelle est la 2.4.0. Installation directe depuis ton admin WordPress (recherche Login Armor dans Extensions → Ajouter une extension), ou téléchargement manuel depuis la page officielle. Le forum support est sur wordpress.org/support/plugin/login-armor, je le surveille personnellement.
Soyons concrets. Login Armor est gratuit, GPL, sans freemium, sans appel SaaS, et s'active en moins de 90 secondes. À la fin de l'installation tu auras un slug d'admin secret, une 2FA active, 15 toggles de hardening cochés, un anti brute force qui tourne, et un score de sécurité qui te dit où tu en es. Tu n'as littéralement rien à perdre. Et la prochaine fois qu'un bot tape sur ta porte, il tombera sur une 404. Ou il se fera blacklister. Ou les deux.

Login Armor 2.4.0 par Fabrice Ducarme (auteur unique). Compatible WordPress 6.8 → 7.0 / PHP 8.1+. GPL, sans freemium, sans appel SaaS. Disponible sur WordPress.org. Télécharger sur WordPress.org →
Bon courage à tes attaquants. Ils en auront besoin.
Ces 7 templates, je les donne en formation payante. Ici, ils sont gratuits.
Sécurité, SEO, performance, contenu, maintenance - les outils que j'utilise en formation et en audit, avec les prompts IA pour aller 10x plus vite.
- 01Workflow contenu anti-IA
- 02Framework SEO Title/Meta/H1
- 03Audit Express 30 points
- 04Blindage sécurité 10 étapes
- 05PageSpeed 90+ sans plugin
- 06Calendrier maintenance IA
- 07Plan d'action 90 jours
Double opt-in : confirme ton email, puis 1 email / 2 jours pendant 14 jours. Données jamais revendues ni échangées. Désabonnement en 1 clic.

