Formulaires et spam
Hive arrête les envois de formulaires automatisés sans CAPTCHA : les visiteurs ne voient aucune énigme et aucun service tiers n’est chargé. La même vérification couvre, dans l’extension gratuite, le formulaire de commentaire, l’inscription, la réinitialisation du mot de passe et Contact Form 7, et d’autres extensions de formulaires avec le module Pro. Un filtre de commentaires à score, le blocage des adresses jetables et les règles d’inscription complètent l’ensemble. Les réglages se trouvent sous Protection → Forms.
La vérification invisible des formulaires
Chaque formulaire protégé contient un champ appât caché et un second champ qu’un petit script ajoute dans le navigateur, sous un nom aléatoire propre à chaque installation. La page elle-même ne contient rien de propre à une requête, les caches de pages continuent donc de la servir. Un envoi reçoit l’un de quatre verdicts :
| Verdict | Signification | Conséquence |
|---|---|---|
| Prouvé | Le navigateur a exécuté le script, l’appât est vide. | Passe. |
| Appât rempli | Personne ne peut voir ce champ, le remplir demande donc une machine. | Refusé, l’adresse est bloquée et signalée dès la première tentative. |
| Échoué | Le formulaire était bien le nôtre, mais le script ne s’est jamais exécuté, typiquement un script qui envoie directement à l’adresse. | Refusé avec une phrase invitant l’expéditeur à activer JavaScript. L’adresse n’est pas bloquée. |
| Absent | La page provient d’un cache plus ancien que la vérification et ne contient aucun champ. | Passe sur les formulaires d’inscription et de réinitialisation, et sur une extension de formulaires pendant les 24 heures qui suivent l’activation de son interrupteur. Un commentaire est laissé au filtre anti-spam. |
Aucun envoi ne disparaît sans message à l’expéditeur : chaque refus s’affiche au niveau du formulaire. Définir
REPORTEDIP_HIVE_DISABLE_FORM_PROOF dans wp-config.php désactive toute la couche. Vos
propres formulaires peuvent utiliser la même vérification grâce à une petite API, voir
Hooks et API pour développeurs.
Extensions de formulaires
| Extension | Offre | Remarques |
|---|---|---|
| Contact Form 7 | Free | Un envoi refusé reçoit le message anti-spam de l’extension elle-même. |
| WPForms et WPForms Lite | Business, module Pro | Chargement de la page et envoi en arrière-plan. |
| Gravity Forms | Business, module Pro | Refusé comme erreur de validation au-dessus du formulaire, aucune entrée n’est écrite. Un formulaire de plusieurs pages est jugé sur sa dernière page ; les envois via l’API de Gravity Forms ne sont pas jugés. |
| Forminator | Business, module Pro | Y compris les formulaires chargés après la page. |
| Formidable Forms et Formidable Forms PRO | Business, module Pro | |
| Elementor Forms (Elementor Pro) | Business, module Pro | Un refus bloque aussi l’e-mail du formulaire. |
| Ultimate Member | Business, module Pro | Connexion, inscription et réinitialisation du mot de passe. Une inscription passe aussi par les règles d’inscription. |
Chaque extension a son propre interrupteur, qui apparaît dès que l’extension est active. Pendant les 24 heures qui suivent l’activation d’un interrupteur, un envoi sans le champ passe encore, pour qu’une page issue d’un cache plus ancien ne bloque personne. Un envoi refusé n’est jamais déplacé en silence dans un dossier de spam. Les guides pour Gravity Forms et pour WPForms et Forminator entrent dans le détail.
Preuve de calcul
Fait partie du module Pro à partir de l’offre Professional. Un script qui charge une fois un formulaire pourrait recopier le champ de preuve. Avec la preuve de calcul, le navigateur récupère en arrière-plan une petite tâche auprès de votre propre site et la résout avant l’envoi du formulaire. La tâche est signée avec le sel de votre site, expire après dix minutes, ne compte qu’une fois et devient plus difficile à mesure qu’un même réseau en demande vite, si bien qu’un script qui en récupère des centaines paie pour chacune. La page ne contient que l’adresse de ce point d’accès, identique pour chaque visiteur : les caches de pages complètes, LiteSpeed, WP Rocket et les CDN continuent de fonctionner, et la tâche circule dans une requête qu’aucun cache n’enregistre. Sans HTTPS, la tâche ne comporte pas de calcul, mais garde sa signature, son expiration et son usage unique. La difficulté augmente pendant le mode de durcissement.
Filtre anti-spam des commentaires
Chaque commentaire est noté sur une vingtaine de signaux ; la liste se trouve sous Capteurs et blocage. Un lien compte où qu’il se trouve, dans le champ du site web ou dans le texte. Mesuré sur 27 796 vrais commentaires d’un site qui les collecte depuis 2014, le filtre attrape 95 % du spam sans faux positif. Par défaut, un commentaire retenu est classé en spam pour relecture ; le refuser directement est un choix, et le filtre peut être désactivé. Un formulaire de commentaire qui n’a jamais exécuté la vérification est refusé comme tout autre formulaire protégé, et le honeypot des commentaires (le champ appât) dispose de son propre interrupteur.
Adresses e-mail jetables
Les adresses des fournisseurs d’e-mails jetables sont refusées à l’inscription (WordPress, WooCommerce, multisite) et, grâce à un réglage dédié, sur les commentaires et les formulaires protégés, où l’expéditeur est invité à indiquer une adresse permanente. Trois modes : désactivé, surveillance, blocage. Les relais de confidentialité comme Apple Hide My Email et Firefox Relay forment une catégorie à part et passent par défaut. La liste fournie est gratuite ; la liste en direct de milliers de domaines arrive avec Priority Sync à partir de l’offre Professional.
Règles d’inscription
Chaque chemin d’inscription passe par un même jeu de règles : l’inscription WordPress, WooCommerce, les inscriptions multisites et les comptes créés par du code. Les règles sont vérifiées dans un ordre fixe, la première correspondance l’emporte : liste d’autorisation d’IP, limite de fréquence, nom d’utilisateur interdit, règles d’e-mail, adresse jetable.
- Noms d’utilisateur interdits : un par ligne, en plus d’une base de dix noms (
admin,administrator,root,sysadmin,superadmin,webmaster,hostmaster,postmaster,support,moderator) qui peut être désactivée. - Règles d’e-mail : désactivées, bloquer les adresses listées ou n’autoriser qu’elles. Un simple nom d’hôte signifie
*@host. Une liste vide en mode autorisation équivaut à désactivé, personne ne s’enferme donc dehors. - Limite de fréquence : trois inscriptions par adresse en 60 minutes par défaut. Elle refuse seulement l’inscription, sans blocage ni signalement, si bien qu’un bureau derrière une même adresse n’est pas puni.
- Noms d’utilisateur inconnus : facultatif et désactivé par défaut. Une tentative de connexion avec un nom d’utilisateur inexistant bloque aussitôt l’adresse. Le blocage révèle à un attaquant quels noms existent, c’est pourquoi l’interrupteur est désactivé et l’événement jamais signalé.
Une entrée simple correspond exactement, * est un joker. L’extension gratuite accepte dix entrées par
liste. Le module Pro avec l’offre Professional supprime la limite, accepte les expressions régulières entre barres
obliques (/^shop[0-9]+$/) et ajoute l’inscription limitée aux plages d’adresses autorisées. Les refus
sont journalisés sous prohibited_username, registration_denied et
registration_limit.
Dernière mise à jour: · Maintenu par l’équipe ReportedIP