Hushfort

Comment stopper le spam des formulaires de contact WordPress sans CAPTCHA ?

Par Eureka Studio · Mis à jour le

En bref

Combinez des contrôles invisibles au lieu d’un CAPTCHA : un champ piège caché (honeypot) que seuls les robots remplissent, un temps de remplissage minimum, un jeton qui résiste au cache de page, et des limites par IP et par e-mail. Mettez les messages douteux en quarantaine plutôt que de les supprimer. Une extension locale peut faire cela pour Elementor, Contact Form 7 et WPForms sans envoyer de données ailleurs. Dans Hushfort, la protection des extensions de formulaire fait partie de Pro ; l’extension gratuite couvre uniquement les commentaires et les avis.

Étapes

  1. 1Étape 1

    Observez les robots s’attaquer à votre formulaire

    Les robots remplissent tous les champs qu’ils trouvent, y compris un champ caché qu’une personne ne voit jamais, ou envoient sans même charger la page. Le journal de Hushfort nomme chaque cas : champ piège rempli, aucun jeton, rempli trop vite, trop de liens.

    Le tableau Journaux et quarantaine du Bouclier anti-spam avec des entrées du formulaire de contact WPForms : aucun jeton, limite par IP dépassée, champ piège rempli, trop de liens
  2. 2Étape 2

    Activez le Bouclier anti-spam en mode Surveillance

    Dans Hushfort, ouvrez le Bouclier anti-spam, activez-le et réglez Mode sur « Journaliser uniquement — mode Surveillance, ne bloque rien ». Avec Hushfort Pro installé, laissez Extensions de formulaire activé, puis enregistrez. Il enregistre ce qu’il bloquerait sans encore rien bloquer.

    Bouclier anti-spam activé avec le Mode réglé sur Journaliser uniquement — mode Surveillance, ne bloque rien
  3. 3Étape 3

    Réglez les limites discrètes (Pro)

    Gardez un Temps de remplissage minimum court (3 secondes). Avec Pro, limitez aussi le nombre de messages qu’une IP (Limite par IP) ou une adresse e-mail (Limite par e-mail) peut envoyer par heure. Les messages contenant plus de liens que le Nombre maximum de liens vont en quarantaine.

    Limites du Bouclier anti-spam : temps de remplissage minimum 3 secondes, limite par IP 5 par heure, limite par e-mail 3 par heure, nombre maximum de liens 2
  4. 4Étape 4

    Examinez le journal, puis passez en mode Bloquer

    Au bout de quelques jours, regardez ce que le mode Surveillance a intercepté. Si aucun vrai message n’y figure, réglez Mode sur « Bloquer (recommandé) » et enregistrez.

    Mode du Bouclier anti-spam passé de Journaliser uniquement à Bloquer (recommandé) et enregistré
  5. 5Étape 5

    Les vraies personnes envoient, tout simplement

    Un visiteur tape pendant une demi-minute, ne voit jamais le champ caché et envoie. Pas d’énigmes, pas de grilles d’images.

    Un visiteur remplit le formulaire de contact de la boutique de démonstration et l’envoie ; le formulaire répond Thanks for your message

Pourquoi c’est important

Le spam des formulaires n’est qu’une nuisance, jusqu’au jour où il devient un vrai problème. Il noie les vraies demandes, vous habitue à survoler votre boîte de réception, et peut dégrader la réputation d’envoi de votre serveur de messagerie si votre formulaire envoie des réponses automatiques. Sur les sites très fréquentés, il consomme aussi du temps serveur, car chaque envoi déclenche tout le traitement de l’extension de formulaire.

La solution habituelle, un CAPTCHA, fait payer le prix à vos visiteurs. Ils résolvent des énigmes, certains abandonnent, et ceux qui utilisent des outils de protection de la vie privée restent bloqués. La plupart des services CAPTCHA chargent aussi du code tiers et envoient les données des visiteurs hors de votre serveur.

Il existe une méthode plus discrète. Les robots se comportent différemment des humains, et cela se vérifie en silence :

  • Ils remplissent les champs cachés. Un honeypot est un champ caché aux humains mais visible dans le HTML. Une personne le laisse vide ; un robot le remplit.
  • Ils sont rapides. Une personne a besoin de quelques secondes pour remplir un formulaire. Un robot, de quelques millisecondes.
  • Ils se répètent. Une IP ou une adresse e-mail qui envoie dix messages par heure n’est pas un client.
  • Ils collent des liens. Un message truffé de liens est rarement une vraie demande.

Erreurs courantes

  • Bloquer au lieu de mettre en quarantaine. Quand un contrôle a un doute, gardez le message pour l’examiner. Supprimer la question d’un vrai client est pire que de lire un spam.
  • Passer directement en mode Bloquer. Commencez par un mode de journalisation seule pendant quelques jours. Vérifiez ce qui aurait été bloqué avant de le laisser bloquer.
  • Des jetons qui cassent avec le cache. Si votre jeton anti-spam fait partie d’une page en cache, tous les visiteurs partagent un même jeton expiré. Utilisez une protection qui récupère son jeton au chargement de la page.
  • Un seul contrôle. Un champ piège seul stoppe les robots simples. Ajoutez un contrôle du temps de remplissage et des limites.

Sans extension

La plupart des extensions de formulaire intègrent une version basique de ces protections :

  • Formulaires Elementor Pro : ajoutez un champ « Honeypot » depuis la liste des champs.
  • Contact Form 7 : ajoutez un honeypot via un module complémentaire ; CF7 prend aussi en charge Akismet si vous acceptez d’envoyer des données à ce service.
  • WPForms : dispose d’un jeton anti-spam intégré et d’un honeypot facultatif dans les réglages de chaque formulaire.

Vous pouvez aussi ajouter vous-même un honeypot simple à tout formulaire que vous contrôlez :

<div style="position:absolute;left:-9999px" aria-hidden="true">
  <label>Leave this empty <input type="text" name="website" tabindex="-1" autocomplete="off"></label>
</div>
<?php
if ( ! empty( $_POST['website'] ) ) {
    wp_die( 'Spam detected.', 403 );
}

Les limites : chaque extension de formulaire procède différemment, il n’y a généralement pas de limite de débit commune à tous les formulaires, pas de quarantaine pour rattraper les erreurs, et rien pour les commentaires ou les avis. Vous finissez par configurer la même idée cinq fois.

En cas de problème

  • Les vrais messages n’arrivent plus. Passez le Bouclier anti-spam en mode Surveillance, envoyez un test et consultez le journal pour voir quel contrôle l’a intercepté.
  • Les formulaires échouent seulement pour certains visiteurs. Videz votre cache de page une fois après avoir activé la protection.
  • Du spam passe encore. Baissez la limite de liens, ajoutez des mots ou des domaines à la liste de blocage, ou activez le mode strict pour les formulaires qui ne doivent accepter que des fournisseurs d’e-mail connus.

Avec Hushfort

Le Bouclier anti-spam de Hushfort protège les commentaires et les avis WooCommerce dans Hushfort Security, l’extension de sécurité WordPress gratuite. Les extensions de formulaire nécessitent Hushfort Pro, qui ajoute six extensions populaires (Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Forminator) au même écran.

  • Champ piège invisible, temps de remplissage minimum et jetons signés qui résistent au cache de page. Le jeton provient d’un minuscule script d’environ 2 Ko, sans cookies.
  • Pro : des limites par défaut par IP (5 par heure) et par e-mail (3 par heure) ; les messages contenant plus de 2 liens vont en quarantaine.
  • Pro : une liste d’environ 9 900 domaines d’e-mail jetables, vos propres listes de blocage et des filtres de mots.
  • Pro : une quarantaine avec apprentissage « Pas un spam ».
  • Un mode Surveillance, pour voir ce qu’il bloquerait avant qu’il ne bloque.

Pas de CAPTCHA, pas d’API externe, et aucune donnée de formulaire ne quitte jamais votre serveur.

Questions fréquentes

Les champs pièges (honeypots) stoppent-ils vraiment le spam des formulaires ?

Ils stoppent la plupart des robots automatisés, qui remplissent tous les champs qu’ils trouvent. Certains robots plus malins ignorent les champs cachés : c’est pourquoi un contrôle du temps de remplissage et des limites par IP prennent le relais derrière le champ piège.

Pourquoi éviter reCAPTCHA ?

Il ajoute des frictions pour les vrais visiteurs, peut échouer pour les personnes qui utilisent des outils de protection de la vie privée, et envoie les données des visiteurs à un tiers. Beaucoup de propriétaires de sites constatent aussi qu’il impose un bandeau cookies.

Cela fonctionne-t-il avec le cache de page ?

Oui, si le jeton est récupéré au chargement de la page au lieu d’être figé dans le HTML en cache. Sinon, chaque visiteur reçoit le même jeton périmé et les formulaires échouent.

Quelles extensions de formulaire sont couvertes ?

Avec Hushfort Pro, le Bouclier anti-spam couvre les formulaires Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms et Forminator. L’extension gratuite couvre uniquement les commentaires et les avis WooCommerce.

Que devient un message qui ressemble à du spam mais pourrait être légitime ?

Avec Hushfort Pro, il va en quarantaine au lieu d’être supprimé. Marquez-le « Pas un spam » : il est remis, et le bouclier en tire des enseignements.

Signaler un bug ou demander une fonctionnalité

Votre message arrive directement à l’équipe qui développe Hushfort.

De quoi s’agit-il ?

Utilisé uniquement pour vous répondre.

Nous utilisons ces informations uniquement pour vous répondre. Confidentialité