Plugin WordPress — ReportedIP Hive Light
ReportedIP Hive Light protège les connexions WordPress contre les attaques par Brute Force et par « password spraying ». Il est volontairement ciblé : un compteur de tentatives par adresse IP, un système de blocage progressif et une vérification optionnelle de la réputation des adresses IP par la communauté. Pas de fonctionnalités superflues, pas de Dashboard, pas de vente incitative. Le plugin fonctionne dès son installation en mode « Local Shield » — aucune configuration n’est requise.
Installation
Installation depuis WordPress.org
Dans votre interface d'administration WordPress, rendez-vous dans Plugins → Ajouter, recherchez « ReportedIP Hive Light », puis cliquez sur Installer maintenant, puis sur Activer. Vous pouvez également télécharger le fichier ZIP depuis WordPress.org/plugins/reportedip-hive/ et le mettre en ligne via Plugins → Ajouter → Importer un plugin.
Lancer le Setup Wizard
L'assistant en quatre étapes se lance automatiquement lors de la première activation. Vous pouvez également l'ignorer complètement : Hive Light est entièrement fonctionnel dès son installation en mode Local Shield.
Restez à jour
Les mises à jour sont diffusées via le canal standard de WordPress.org. Les nouvelles versions apparaissent dans Dashboard → Mises à jour quelques heures après leur publication — aucune réinstallation manuelle, aucun outil de vérification des mises à jour tiers n’est nécessaire.
Setup Wizard (4 étapes)
L'assistant s'exécute lors de la première activation et peut être relancé depuis les paramètres du plugin. Chaque étape est enregistrée immédiatement, vous pouvez donc vous arrêter et reprendre à tout moment.
| Étape | Ce qu’elle configure |
|---|---|
| 1. Bienvenue | Présentation et lien vers les Docs. |
| 2. Mode de fonctionnement | Choisissez « Local Shield » (par défaut, aucun trafic sortant) ou « Community Network » avec une Community Access Key gratuite obtenue sur reportedIP.com. |
| 3. Protection | Seuil de tentatives de Login par adresse IP, fenêtre temporelle, stratégie de blocage fixe ou progressive, éditeur d'échelle. |
| 4. Terminé | Résumé et lien en un clic vers la page des paramètres. |
Modes de fonctionnement
Deux modes, commutables à tout moment sans perte des données locales relatives aux tentatives.
| Fonctionnalité | Local Shield (par défaut) | Community Network |
|---|---|---|
| Compteur de tentatives de Brute-Force par adresse IP | Oui | Oui |
| Progressive Block Escalation | Oui | Oui |
| Whitelist manuelle | Oui | Oui |
| Vérification de la réputation de l'adresse IP sortante avant le Login | Non | Oui |
| Rapport sur les adresses IP sortantes bloquées (tâche cron mise en file d'attente, toutes les 15 minutes) | Non | Oui |
| Community Access Key requise | Non | Oui (Free sur reportedIP.com) |
| Les données quittent votre serveur | Jamais | Uniquement l'adresse IP de l'attaquant, l'identifiant de catégorie (entier) et un nom d'utilisateur haché avec SHA-256 (avec sel wp_salt()) |
Ce que vous obtenez — et ce que vous n’obtenez pas
Hive Light est volontairement allégé. Tout ce qui nécessiterait un relais payant, une licence Multisite ou un processus de vente incitative se trouve dans la Full Edition sur GitHub.
| Fonctionnalités | Hive Light | Hive (Full Edition) |
|---|---|---|
| Surveillance des tentatives de Login par Brute Force | Oui | Oui |
| Échelle de blocage progressive (5 min → 7 jours) | Oui | Oui |
| Whitelist manuelle + déblocage par adresse IP | Oui | Oui |
| Recherche d'adresses IP et rapports communautaires en option | Oui (clé Free) | Oui (formules Free et payantes) |
| Page de blocage compatible avec les plugins de mise en cache (WP Rocket, W3TC, Super Cache, LiteSpeed) | Oui | Oui |
| Prise en charge des en-têtes Cloudflare / proxy inverse | Oui (Trusted Proxy Header) | Oui |
| Capteurs de spam dans les commentaires, XML-RPC et REST-burst | — | Oui |
| Détecteur de 404 / scanner avec chemins Honeypot | — | Oui |
| Blocage de l'User Enumeration | — | Oui |
| Surveillance des mots de passe d'application | — | Oui |
| Détection des anomalies géographiques / ASN | — | Oui |
| Contrôle de la force des mots de passe | — | Oui |
| Masquage de l'URL de Login | — | Oui |
| Authentification à deux facteurs (2FA) via quatre méthodes (TOTP / e-mail / SMS / WebAuthn) + Recovery Codes + Trusted Devices | — | Oui |
| Frontend 2FA en interface utilisateur WooCommerce + audit des abonnements / adhésions | — | Oui (PRO+) |
| Multisite (activation réseau) | — | Oui |
| Relais de messagerie / SMS géré avec forfaits prépayés | — | Oui (PRO+) |
| Tarification par niveau (Free / Contributor / PRO / Business / Enterprise) | — | Oui |
| Outils WP-CLI pour l'authentification 2FA | — | Oui (Business+) |
| Politiques de 2FA par rôle, limitation du nombre de tentatives de Login, rapports de sécurité hebdomadaires | — | Oui |
Progressive Block Escalation
Hive Light est livré avec la même échelle par défaut que la Full Edition : 5 min → 15 min → 30 min → 24 h → 48 h → 7 j. Après 30 jours sans incident, le compteur revient à l’étape 1. Les administrateurs maladroits, les adresses CGNAT et les sorties de réseau mobile partagées se rétablissent en quelques minutes ; les attaquants persistants voient leur blocage s'allonger rapidement. L'échelle est modifiable dans l'onglet « Protection », et un mode à durée fixe est disponible si vous préférez une durée de blocage unique.
Aperçu de la configuration
Tous les paramètres se trouvent dans ReportedIP Hive Light → Paramètres. Les valeurs par défaut les plus importantes :
| Paramètre | Valeur par défaut | Description |
|---|---|---|
operation_mode | Local Shield | Local Shield ou Community Network. Le Local Shield n'effectue aucune requête sortante. |
access_key | (vide) | Community Access Key facultative fournie par reportedIP.com. |
login_threshold / login_timeframe_minutes | 5 / 15 | Nombre de tentatives de Login infructueuses par adresse IP avant le blocage automatique. |
block_duration_minutes | 1 440 (24 h) | Blocage de durée fixe (utilisé lorsque l'échelle est désactivée). |
block_escalation_enabled + block_ladder_minutes | Activé — 5, 15, 30, 1 440, 2 880, 10 080 | Échelle progressive (minutes par palier). |
block_escalation_reset_days | 30 | Jours d’abstinence avant que le programme ne recommence à l’étape 1. |
trusted_proxy_header | (désactivé) | Configurer CF-Connecting-IP derrière Cloudflare ou X-Forwarded-For derrière un autre proxy inverse de confiance. N’activez cette option que si votre proxy réécrit de manière fiable l’en-tête à chaque requête. |
api_endpoint | https://reportedip.com/wp-json/reportedip/v2/ | Filtrable via reportedip_hive_api_endpoint. |
api_timeout | 2 s | Les requêtes de recherche sont traitées en mode « fail open » : le Login se poursuit lorsque l’API ne répond pas. |
queue_retention_days | 14 | Durée de conservation des lignes du rapport d’échecs de distribution avant leur suppression. |
uninstall_drops_tables | Désactivé | Lorsque cette option est activée, la désinstallation supprime toutes les wp_reportedip_hive_* tables et options. |
Tables de la base de données
Créées lors de l’activation, préfixées wp_reportedip_hive_ (préfixe pour site unique — Hive Light ne prend pas en charge l’activation sur un réseau Multisite). Quatre tables uniquement :
attempts— compteur par adresse IP / par type / par nom d’utilisateur haché avec horodatage de la première et de la dernière occurrence.blocked— blocages actifs (manuels / automatiques / basés sur la réputation), motif, type de blocage etblocked_until.whitelist— adresses IP de confiance / plages CIDR ; date d’expiration facultative.api_queue— rapports en attente et ayant échoué vers reportedIP.com ; nouvelle tentative par cron toutes les 15 minutes.
Ce qui n’est pas stocké :
les noms d’utilisateur bruts, les mots de passe, le corps des requêtes, les user-agents, le contenu des commentaires ou les identifiants de domaine. Les noms d’utilisateur sont stockés sous forme de sha256(username + wp_salt()) seulement.
Services externes et RGPD
En mode Local Shield, le plugin n’effectue aucune requête réseau sortante. En mode Community Network, le plugin communique avec trois Endpoints reportedip.com (toutes les transmissions sont répertoriées sur WordPress.org readme.txt conformément aux directives de wp.org) :
| Endpoint | Déclencheur | Données envoyées |
|---|---|---|
GET /wp-json/reportedip/v2/check?ip=… | Une tentative de Login est détectée wp_authenticate_user. | Uniquement l’adresse IP source de la tentative de Login. En-tête X-Key avec la clé d’accès. Délai d’expiration de 2 s, mode « fail-open ». |
POST /wp-json/reportedip/v2/report | Un seuil de tentatives de connexion par Brute-Force a été dépassé ; le rapport est mis en file d'attente et envoyé par la tâche cron toutes les 15 minutes. | Adresse IP incriminée, identifiant de catégorie (entier), bref commentaire lisible par l’utilisateur (« 5 tentatives de Login infructueuses en 15 minutes »). Pas de noms d’utilisateur en clair, pas de mots de passe, pas de nom de domaine, pas de corps de requête. |
GET /wp-json/reportedip/v2/verify-key | Un administrateur clique sur « Tester la connexion » dans les paramètres. | Seule la clé d’accès est en cours de vérification. |
Base légale (RGPD, art. 6, al. 1, let. f) : sécurité des réseaux et de l’information — la conservation des journaux, le nettoyage automatique et le hachage par adresse IP protègent à la fois vos utilisateurs et les visiteurs non concernés. Le détail complet du traitement des données figure dans la politique de confidentialité de ce site.
Filtres et hooks d’action
apply_filters('reportedip_hive_is_whitelisted', $is_whitelisted, $ip)— contournent la vérification de la Whitelist (à utiliser avec parcimonie).apply_filters('reportedip_hive_get_client_ip', $ip)— Remplacer la logique de détection d’adresse IP (utile derrière des proxys inversés non standard).apply_filters('reportedip_hive_event_category_map', $map)— associez vos noms d’événements à des identifiants de Threat Categories.apply_filters('reportedip_hive_api_endpoint', $url)— redirigez le plugin vers une autre installation du service ReportedIP.do_action('reportedip_hive_log', $event, $data)— déclenché à chaque événement enregistré.do_action('reportedip_hive_ip_blocked', $ip, $reason)— se déclenche lorsqu’une adresse IP est bloquée.do_action('reportedip_hive_report_queued', $ip, $category)— se déclenche lorsqu’un rapport est mis en file d’attente.
Passer à ReportedIP Hive (Full Edition)
Hive Light est délibérément limité au scénario de tentative de Login par Brute-Force. Si votre site a besoin de l’une des fonctionnalités suivantes, passez à la Full Edition :
- Authentification à deux facteurs (2FA) à quatre méthodes avec WebAuthn / TOTP / e-mail / SMS, ainsi que des Recovery Codes et des Trusted Devices.
- Capteurs au-delà du Login — XML-RPC, spam dans les commentaires, rafales REST, détecteur de 404 / scanners, blocage de l’User Enumeration, surveillance des mots de passe d’application, Geo / ASN Anomaly.
- Activation sur un réseau multisite (
Network: true). - Frontend 2FA (2FA) pour WooCommerce (défi thématique intégré au flux « Mon compte » / « Paiement »).
- Relais de messagerie / SMS géré avec forfaits prépayés (pas besoin de gérer votre propre passerelle SMTP / SMS).
- Politiques d’authentification 2FA par rôle, limitation du nombre de tentatives de Login, Weekly PDF Security Report, GDPR Export Tool.
La migration est à sens unique : désactivez Hive Light, installez Hive (Full Edition), puis réactivez-le. Les deux plugins utilisent le même wp_reportedip_hive_* préfixe de table et une migration de schéma idempotente ; la Full Edition étend le schéma avec trois tables supplémentaires (logs, stats, trusted_devices) et détecte les données existantes de la version Light au premier démarrage. N’exécutez jamais les deux plugins en parallèle — même domaine de texte, même préfixe de classe, redéclaration immédiate d’une fonction entraînant une erreur fatale.
Consultez la page du produit pour connaître les tarifs et comparer les fonctionnalités.
Foire aux questions
Quelle est la différence entre Hive Light et Hive (Full Edition) ?
Hive Light est un plugin WordPress.org dédié exclusivement à la protection contre les tentatives de Login par Brute Force, gratuit à vie, sans vente incitative ni niveaux tarifaires. Hive (Full Edition) est la suite de sécurité complète distribuée via GitHub : seize capteurs, dont un Web Application Firewall, une authentification à deux facteurs (2FA) à quatre méthodes, la prise en charge Multisite, l’intégration WooCommerce, une tarification par niveau avec Mail Relay / SMS Relay géré. Deux plugins différents, deux canaux de distribution, mais le même auteur et la même communauté à l’origine.
Puis-je utiliser Hive Light et Hive (Full Edition) sur le même site ?
Non. Les deux plugins utilisent le même domaine de texte (reportedip-hive) et le même préfixe de classe (ReportedIP_Hive). Leur exécution simultanée entraîne immédiatement des erreurs fatales de redéclaration de fonction. Choisissez-en un. Pour passer de la version Light à la version complète : désactivez Light, installez la version complète, puis réactivez-la. Les tables de la base de données sont réutilisées.
Ai-je besoin d’un compte sur reportedip.com ?
Non — Local Shield fonctionne sans aucun compte. Vous n’avez besoin d’une Community Access Key gratuite que si vous souhaitez activer le Community Network, qui ajoute des vérifications de réputation par rapport à la ruche et partage en retour des rapports d’attaques anonymisés. La clé est disponible sur reportedip.com/register/ en quelques secondes.
Pourquoi le plugin wp.org s’appelle-t-il « ReportedIP Hive » et non « Hive Light » ?
Le slug du plugin WordPress.org est reportedip-hive (le nom du paquet), mais le nom affiché dans l’interface d’administration du plugin est « ReportedIP Hive Light ». Le slug reste inchangé d’une version à l’autre — seul le nom lisible par l’utilisateur change. La Full Edition utilise le même domaine de texte afin que les futures migrations préservent les clés d’options et les tables de base de données.
Le plugin risque-t-il de m’empêcher d’accéder à mon propre site ?
C’est possible, si vous échouez à plusieurs reprises à effectuer un Login depuis votre propre adresse IP. Pour y remédier, vous pouvez soit attendre que le blocage expire, soit ajouter votre adresse IP à la Whitelist à l’avance, soit supprimer la ligne de la wp_reportedip_hive_blocked table via phpMyAdmin ou WP-CLI : wp db query "DELETE FROM wp_reportedip_hive_blocked WHERE ip_address = 'YOUR_IP'".
Hive Light protège-t-il les mots de passe d’application ?
Non. La version actuelle protège les wp-login.php . Les mots de passe d’application utilisent un chemin d’authentification distinct qui n’est pas surveillé ici. La Full Edition inclut un moniteur de mots de passe d’application qui limite le nombre d’ application_password_failed_authentication les événements.
Est-ce que cela fonctionne avec les formulaires de Login WooCommerce ?
Oui — WooCommerce utilise l’action standard wp_login_failed , que Hive Light surveille. Les tentatives de connexion à WooCommerce sont comptabilisées avec les connexions classiques. L’authentification à deux facteurs (2FA) en Frontend 2FA de WooCommerce (défi en vitrine) est une fonctionnalité de l’édition Full Edition.
Mon site est derrière Cloudflare — les adresses IP réelles sont-elles détectées ?
Oui — configurez le Trusted Proxy Header dans Paramètres → Connexion sur CF-Connecting-IP. N’activez cette option que si votre proxy inverse remplace de manière fiable l’en-tête à chaque requête entrante ; sinon, l’en-tête peut être usurpée. La même logique s’applique au Spoofing X-Forwarded-For aux proxys autres que Cloudflare.
Où se trouve le code source ?
Le plugin se trouve dans le dépôt SVN officiel de WordPress.org sous le slug reportedip-hive. Un miroir GitHub est mis à jour pour le suivi des tickets ; le canal de distribution officiel est WordPress.org/plugins/ReportedIP Hive/.
Qu’advient-il de mes données si je désinstalle le plugin ?
Par défaut, les clés d’options sont conservées ; une réinstallation permet donc de conserver vos paramètres. Si vous activez d’abord l’option « uninstall_drops_tables », le hook de désinstallation supprime toutes les wp_reportedip_hive_* tables et supprime toutes les reportedip_hive_* options. Les Reports déjà enregistrés dans la base de données communautaire sont conservés — ils ne permettent pas de vous identifier personnellement sur votre site.
Dernière mise à jour : · Géré par l'équipe ReportedIP