Glossaire

Qu'est-ce qu'un honeypot ? Protection antispam sans CAPTCHA

20 mai 2026

Un honeypot dans un formulaire web est un champ de saisie invisible, caché aux humains via CSS mais visible pour les bots automatisés qui parsent le HTML. Comme les utilisateurs légitimes ne voient jamais ce champ, toute soumission avec un honeypot rempli est rejetée comme spam. La technique s'est popularisée vers 2007 grâce aux blogs antispam et au plugin WordPress "Honeypot for Contact Form 7", et constitue l'alternative respectueuse de la vie privée aux CAPTCHAs comme Google reCAPTCHA : pas de scripts tiers, pas de cookies, pas de problème d'accessibilité, pas de perte de conversion.

Comment fonctionne un honeypot ?

Le serveur ajoute un champ supplémentaire (souvent website, url, email_confirm). Il est caché via display: none, visibility: hidden, position: absolute; left: -9999px, un <label> vide ou tabindex="-1" autocomplete="off". Les bots remplissent tous les champs trouvés — y compris le piège. Au submit :

  1. Champ vide → humain, traiter.
  2. Champ rempli → bot, rejeter silencieusement ou renvoyer 200 OK sans enregistrer.

Honeypot vs CAPTCHA : lequel choisir ?

CritèreHoneypotCAPTCHA (reCAPTCHA)
Friction utilisateurAucuneMoyenne à élevée
Accessibilité (WCAG 2.2)ConformeAudio nécessaire
RGPDAucun appel tiersScripts Google, consentement requis
Performance~0 Ko~200 Ko JS
Détection bots~95 % spam basique~99 % y compris bots avancés
Impact conversionAucun3–29 % de baisse

Pour la plupart des sites WordPress, honeypot + contrôle temporel bloquent largement assez de spam — sans le coût juridique et UX d'un CAPTCHA.

Comment ajouter un honeypot à un formulaire WordPress ?

Contact Form 7

Installez le plugin gratuit "Honeypot for Contact Form 7" (1 M+ installations actives) et ajoutez [honeypot website].

WPForms / Gravity Forms / Fluent Forms

Tous trois incluent une option honeypot intégrée — un clic suffit.

Formulaire WordPress sur mesure

<p style="position:absolute;left:-9999px;" aria-hidden="true">
  <label for="website">Laissez ce champ vide</label>
  <input type="text" name="website" id="website" tabindex="-1" autocomplete="off">
</p>
if ( ! empty( $_POST['website'] ) ) {
    wp_die( 'Spam détecté', 'Erreur', array( 'response' => 200 ) );
}

Bonnes pratiques pour les honeypots

  • Noms plausibles comme website, url, company — jamais honeypot.
  • Cacher en CSS, pas type="hidden".
  • tabindex="-1" + autocomplete="off".
  • aria-hidden="true" pour les lecteurs d'écran.
  • Combiner avec un contrôle temporel — rejeter sous 2–3 s.
  • Renvoyer 200 OK pour ne pas signaler le piège aux bots.

Quand un honeypot ne suffit-il pas ?

Les bots avancés qui exécutent JS et respectent la visibilité CSS (Puppeteer, headless Chrome) sautent le honeypot. Pour les cibles à fort enjeu (login, paiement, lead-gen rémunérée), combinez honeypot + contrôle temporel + Cloudflare Turnstile ou rate limiting. L'autre sens de "honeypot" — un serveur volontairement vulnérable pour étudier les attaquants — est un concept de cybersécurité distinct.

Ce que vérifie InspectWP

InspectWP analyse chaque formulaire de la page crawlée et signale l'absence de protection antispam sur les formulaires de contact et de connexion. Il détecte aussi les scripts Google reCAPTCHA dans la section RGPD pour comparer honeypot vs CAPTCHA sur votre site.

Vérifiez votre site WordPress dès maintenant

InspectWP analyse votre site WordPress pour détecter les problèmes de sécurité, de SEO, de conformité RGPD et de performance — gratuitement.

Analyser votre site gratuitement