Protéger un formulaire de contact contre le spam, sans énigme
Antisy vérifie qu’un message vient d’un navigateur et non d’un programme. Le visiteur ne voit rien : pas de case à cocher, pas d’énigme. Votre serveur reçoit un verdict, allow ou deny, avant d’enregistrer le message.
Pourquoi un formulaire de contact reçoit-il du spam ?
Un formulaire de contact est une porte ouverte à tout Internet : des programmes le trouvent et y envoient des messages en série. Les trier après coup prend du temps, et une énigme à résoudre fait porter l’effort à vos vrais visiteurs.
Comment Antisy protège-t-il un formulaire de contact ?
- Une balise dans le
<head>de la page qui porte le formulaire, avec la clé publique de votre site. - À l’envoi, le script met un jeton court dans le champ caché
antisy-tokendu formulaire : vous n’écrivez pas de JavaScript. - Votre serveur envoie ce jeton à
POST /v1/siteverify, avec votre secret, et lit la réponse :allowoudeny.
La mesure du navigateur et la décision se font chez Antisy. L’appel se fait depuis n’importe quel langage : c’est une requête HTTP.
Voir : Documentation : démarrage rapide · Documentation : vérifier un jeton
Que faire du verdict ?
allow : enregistrez ou envoyez le message. deny : refusez-le, sans dire pourquoi. Il n’y a que ces deux issues, et la réponse n’en donne jamais la raison : chaque raison rendue apprendrait à celui qui contourne ce qui l’a arrêté.
Et si le script est bloqué, ou si Antisy ne répond pas ?
Si le script est bloqué (bloqueur de publicité, politique CSP incomplète, visiteur sans JavaScript), le formulaire part quand même, sans jeton : sans champ antisy-token, ou avec ce champ vide si la page en porte déjà un, et votre serveur le lit avec une valeur vide par défaut ; c’est aussi le cas d’un formulaire que le script ne couvre pas (un envoi par fetch, par exemple) et dont la page n’appelle pas antisy.token(). La suite dépend du réglage « Collecte du navigateur » de votre site : allumée, un envoi sans jeton ne passe pas ; éteinte, l’absence de jeton n’est pas reprochée.
Si Antisy ne répond pas en 3 secondes, laissez passer l’envoi et journalisez-le : une panne chez Antisy ne doit pas bloquer vos visiteurs.
Quelles données sont traitées ?
Dans le navigateur, le script mesure les capacités que le navigateur déclare, les langues et le fuseau horaire du navigateur, le rendu graphique et l’empreinte de l’appareil, des indices d’automatisation, le comportement du moteur JavaScript et le déroulé de l’interaction : l’empreinte en condensés salés par site, l’interaction en compteurs et en agrégats. Le serveur d’Antisy lit l’ordre des en-têtes HTTP, l’adresse IP, le User-Agent et le contexte de la requête. Le script ne lit jamais le contenu des frappes ni des champs. La page d’accueil nomme chaque donnée gardée et sa durée de conservation, écrite à l’avance.
Ce que ce parcours ne couvre pas
Cet appel convient aux formulaires à faible enjeu : contact, lettre d’information. Il ne lie pas le jeton à un compte : une connexion ou une inscription passe par un autre appel.
Voir : Cas d’usage : protéger une connexion · Cas d’usage : protéger une inscription
Est-ce disponible aujourd’hui ?
Pas encore. L’accès se fait sur liste d’attente : rien n’est encore en service, et l’hébergement en Suisse est prévu, pas encore en service. L’API répondra sur api.antisy.com dès sa mise en service.
Voir : Rejoindre la liste d’attente