outil gratuit

Générateur de honeypot gratuit pour votre formulaire de contact

Un honeypot est un champ texte que les vrais visiteurs ne voient jamais et ne remplissent jamais, masqué hors écran et retiré de l’ordre de tabulation. Un bot qui remplit tous les champs qu’il trouve remplit aussi celui-ci, et votre serveur utilise cette valeur pour écarter l’envoi tout en répondant comme s’il avait réussi. Le code ci-dessous fonctionne avec n’importe quel formulaire HTML et n’importe quel backend.

Un honeypot n’arrête ni les bots qui lisent le CSS et sautent les champs cachés, ni les personnes payées pour coller du spam à la main. Voyez-le comme un premier filtre, pas le seul : validez côté serveur, limitez la fréquence d’envoi par adresse et gardez un dossier de révision pour ce qui passe. La plupart des sites éliminent ainsi l’essentiel du spam de formulaire sans CAPTCHA.

constructeur de honeypot

Choisissez un nom, une technique de masquage et copiez le code.

Collez le HTML dans votre formulaire existant, à côté des champs email et message. Le réglage par défaut correspond à ce que les formulaires mailcontact contiennent déjà : un formulaire construit avec notre générateur n’a besoin de rien de plus.

Choisissez un nom qu’un bot s’attend à remplir. Évitez les mots comme « honeypot » ou « trap ». Les formulaires mailcontact doivent garder company_website.

Les visiteurs ne le voient jamais. Il donne au champ un air ordinaire pour un bot qui lit les libellés.

Ajoute un champ caché _t horodaté au chargement de la page et un petit script qui refuse un envoi en moins de 3 secondes. Une personne met plus de temps à écrire un message ; la plupart des bots n’attendent pas.

Le champ caché ne fait rien seul : votre backend doit le lire et écarter les envois remplis. Exemples en Node (Express), PHP et Python (Flask).

honeypot.html
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;">
  <label>Site web
    <input name="company_website" type="text" tabindex="-1" autocomplete="off" />
  </label>
</div>

utiliser le champ

Ce que fait le code généré

Invisible pour les visiteurs

Le conteneur est déplacé loin hors de la page et masqué aux technologies d’assistance. Le champ est retiré de l’ordre de tabulation et exclu du remplissage automatique du navigateur : une vraie personne ne peut pas le remplir par accident.

Votre serveur décide

Le champ ne sert à rien si le backend ne le lit pas. Activez l’exemple côté serveur pour voir la vérification en Node, PHP ou Python : un piège rempli reçoit la réponse de succès habituelle et rien n’est enregistré ni envoyé.

Intégré aux formulaires mailcontact

mailcontact endpoints already check the company_website field, discard filled submissions and add rate limits and a Spam folder. Build the whole form with the générateur de formulaire de contact gratuit and the honeypot is included.

FAQ

Le champ honeypot, en questions

Un champ honeypot pose-t-il problème aux lecteurs d’écran ?

Not when the wrapper carries aria-hidden="true" and the input has tabindex="-1", as the generated code does. Screen readers skip the field entirely and keyboard users never land on it. Keep both attributes if you edit the markup: a visitor who reaches the field and types in it would be discarded like a bot.

Le remplissage automatique ou un gestionnaire de mots de passe peut-il remplir le honeypot ?

It can happen when the field name looks like something the browser has saved, which is why the generator sets autocomplete="off" and places the input off screen. Test it: let your browser autofill the visible fields, then inspect the hidden one. If it has a value, choose another name. A legitimate submission with a filled trap is the worst outcome, because the visitor sees a success message and you never get the message.

Pourquoi déplacer le champ hors écran plutôt qu’utiliser display: none ?

Spam bots that read CSS or the DOM look for display:none, visibility:hidden and type="hidden" because those are the classic honeypot markers, and they leave such fields empty. A field positioned far outside the viewport still looks like a normal text input to them. The off-screen technique keeps the trap effective against more bots; display:none is offered for sites that cannot use positioning, with that trade-off made clear.

Pourquoi ne pas simplement ajouter un CAPTCHA ?

A CAPTCHA puts work on every real visitor, hurts accessibility and still gets solved by farms and by current image models. A honeypot costs visitors nothing. It will not stop every bot, so combine it with server-side validation, rate limits per address and per form, and a review folder for the rest. That combination handles most contact form spam without a puzzle.

aller plus loin

La protection anti-spam au-delà du honeypot

Laissez mailcontact gérer le reste du spam.

Reliez votre formulaire à une boîte mailcontact gratuite : vérification du honeypot, limites de débit et dossier Spam sont inclus. Recevez une alerte par email quand une vraie personne écrit.

Créer mon formulaire

Aucune carte bancaire requise. Free comprend un projet et 50 messages de formulaire par mois.