Comment bloquer le spam des formulaires de contact

Bloquer le spam des formulaires de contact : honeypot, piège temporel, CAPTCHA | We.Inc

Bloquez le spam du formulaire de contact de votre site avec un champ honeypot, un piège temporel et un CAPTCHA gratuit comme Turnstile, reCAPTCHA ou hCaptcha, vérifié sur votre serveur. Démo en direct.

Comment bloquer le spam des formulaires de contact

Empilez les contrôles peu coûteux avant les contrôles gênants. Ajoutez un champ honeypot caché que les personnes ne voient jamais mais que les bots remplissent, rejetez les formulaires envoyés plus vite qu'une personne ne pourrait taper, et si du spam passe encore, ajoutez un service CAPTCHA comme Turnstile, reCAPTCHA ou hCaptcha dont votre serveur vérifie le jeton.

Comparaison des défenses anti-spam

Les bots de spam parcourent le web à la recherche de formulaires et les remplissent automatiquement. Votre serveur ne peut pas voir qui tape, donc chaque défense repose sur un comportement qu'une personne n'aurait pas, ou sur un service tiers qui se porte garant du visiteur. Essayez les deux premières défenses dans la démo, puis copiez la vérification serveur qui les accompagne.

Questions fréquentes

Qu'est-ce qu'un champ honeypot ?

Un champ présent dans le code du formulaire mais caché aux personnes. Les visiteurs le laissent vide parce qu'ils ne le voient jamais ; les bots qui remplissent tous les champs qu'ils trouvent y mettent quelque chose, ce qui les trahit.

Existe-t-il une alternative gratuite à reCAPTCHA ?

Oui. Cloudflare Turnstile et hCaptcha proposent tous deux des offres gratuites qui fonctionnent de la même façon : un script et un widget sur la page, puis un appel serveur à une adresse siteverify avec votre clé secrète et le jeton du visiteur. Consultez la page des offres actuelles de chaque fournisseur pour connaître les limites.

reCAPTCHA v3 affiche-t-il un puzzle ?

Non. La documentation de Google indique que v3 renvoie un score où 1.0 correspond très probablement à une interaction légitime et 0.0 très probablement à un bot, et conseille de commencer avec un seuil de 0.5. C'est à vous de décider quoi faire des scores bas.

Le widget seul peut-il bloquer le spam ?

Non. La documentation de Cloudflare indique clairement que le widget côté client ne protège pas à lui seul vos formulaires. Un bot peut envoyer directement à l'adresse de votre formulaire, donc le serveur doit vérifier le jeton.

Pourquoi reçois-je encore du spam avec un honeypot ?

Certains bots utilisent un vrai navigateur et ne remplissent que les champs visibles, et une partie du spam est tapée par des personnes. Ajoutez le piège temporel, puis un CAPTCHA. Rejetez aussi les messages remplis de liens si votre formulaire n'en a jamais besoin.

Pourquoi les contrôles gratuits passent en premier

Bien cacher le piège

Vérifier les jetons CAPTCHA sur le serveur

Copiez le honeypot et le piège temporel

Le HTML va dans votre formulaire. La vérification serveur est montrée pour Node avec Express, mais la logique tient en trois lignes dans n'importe quel langage.

Formulaire avec un champ honeypot

La classe .hp déplace le piège hors de l'écran. Le champ started est rempli avec l'heure actuelle par le petit script.

Vérification serveur (Node, Express)

Les bots reçoivent la même réponse que les personnes, ils ne peuvent donc pas savoir quel contrôle les a attrapés.

Ajouter Turnstile, reCAPTCHA ou hCaptcha

Les trois fonctionnent de la même manière. Ces détails proviennent de la documentation de chaque fournisseur.

Les services CAPTCHA côte à côte

Vérifier un jeton Turnstile (Node 18 ou plus récent)

Le widget ajoute à votre formulaire un champ nommé cf-turnstile-response. Gardez le secret dans une variable d'environnement.

Démo en direct : honeypot plus piège temporel

Rien n'est envoyé nulle part. Appuyer sur Envoyer lance les mêmes contrôles qu'un serveur, ici même dans votre navigateur.

Votre nom

Message

Site web (laissez ce champ vide)

Agir comme un bot : remplir le champ caché

Envoyer

Recommencer

Remplissez le formulaire et appuyez sur Envoyer pour voir ce que décide la vérification serveur.

Accepté : le piège était vide et {n} secondes se sont écoulées. Un vrai formulaire enverrait maintenant le message.

Rejeté : le champ caché contenait une valeur, cela ressemble donc à un bot. Le visiteur verrait quand même un message de remerciement.

Rejeté : envoyé après {n} secondes, plus vite que le minimum de {m} secondes.

Le champ caché est affiché ici, encadré, pour que vous voyiez ce que voient les bots.

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site