Disponible uniquement en Suisse

Schweizerform est actuellement disponible exclusivement pour les utilisateurs en Suisse. La création de compte depuis votre région est restreinte.
Retour au blog

Spam, robots et doublons : les bloquer sans casser l'anonymat

Tout mécanisme qui bloque un doublon est un identifiant — adresse IP, cookie, adresse électronique, compte. La vraie question de conception est donc : quel identifiant pouvez-vous justifier de conserver, et pendant combien de temps ? Champs pièges, limitation de débit, blocages automatiques, jetons à usage unique, marqueurs d'appareil et schéma « anonyme mais vérifié », classés selon le coût en anonymat.

Spam, robots et doublons : les bloquer sans casser l'anonymat

Deux demandes arrivent ensemble dans presque tout projet de formulaire. « Assurez-vous que des robots ne puissent pas le spammer » et « assurez-vous que personne ne puisse répondre deux fois ». Puis, souvent dans la même réunion, une troisième : « et il doit être anonyme ». Ces trois phrases sont en tension, et cette tension n'est pas une limite du produit — c'est de l'arithmétique. Pour savoir que cet envoi ne provient pas de la même personne que celui-là, il vous faut quelque chose qui distingue les personnes. Ce quelque chose est un identifiant, et un identifiant est le contraire de l'anonymat.

En bref

Le spam et les doublons sont deux problèmes distincts aux solutions distinctes. Le spam est un problème de volume : limitation de débit, champs pièges, limites structurelles et validation en résolvent l'essentiel sans identifier personne. Les doublons sont un problème d'identité : chaque mécanisme — cookie, adresse IP, courriel, compte, jeton à usage unique — est un identifiant, donc la question de conception est de savoir quel est l'identifiant le plus faible qui résout votre problème réel, et combien de temps vous le conservez. Et là où la réponse doit rester anonyme, la solution consiste à séparer l'éligibilité de l'envoi pour ne jamais les stocker ensemble.

Cet article est la version pratique de cet arbitrage : quoi utiliser contre le spam, ce que coûte réellement chaque mécanisme anti-doublon, comment fonctionne le schéma « anonyme mais vérifié », et quand exiger un compte est la bonne réponse plutôt que la réponse paresseuse.

Comment empêcher le spam et les robots ?

Commençons ici, car cette moitié est réellement simple et ne coûte aucun anonymat. Presque tout le spam de formulaires est automatisé, non ciblé et bon marché — des scripts qui trouvent un point d'entrée public et y envoient des requêtes en boucle. Quatre couches suffisent.

  1. La limitation de débit. Un plafond du nombre d'envois qu'une source peut faire par minute, par heure et par jour transforme un déluge en bruit de fond. Les limites doivent être assez généreuses pour survivre aux usages légitimes — un bureau partagé, une école, une tablette-borne lors d'un événement, un canton derrière du NAT — et doivent échouer en mode ouvert : un limiteur en panne ne doit jamais bloquer du trafic réel.
  2. Un champ piège. Un champ invisible pour les humains mais présent dans le balisage. Les humains le laissent vide ; les robots naïfs remplissent tout. Ne coûte rien, attrape une part surprenante, et n'ajoute aucun identifiant.
  3. Les limites structurelles. La défense la plus sous-estimée. Fermez le formulaire à une date. Plafonnez le nombre total de réponses. Mettez-y un code de déverrouillage. Un formulaire qui accepte 200 réponses puis s'arrête ne peut pas être inondé jusqu'à 20 000, et aucun de ces trois contrôles n'a besoin de savoir qui répond.
  4. La validation et les champs obligatoires. Contrôles de format, règles de plausibilité et réponses requises filtrent ce qui survit au reste, et améliorent de toute façon la qualité de vos données.

S'y ajoute la couche d'escalade : après suffisamment de requêtes refusées venant d'une source, bloquez temporairement cette source. Le détail décisif : les blocages automatiques doivent expirer. Un blocage automatique permanent finit par punir un réseau partagé — un hôtel, un hôpital, une université — pour le comportement d'une seule personne qui s'y trouve.

La question du CAPTCHA

Un CAPTCHA tiers fonctionne, et il a un prix qui entre rarement dans la décision : il charge un script étranger dans votre page de formulaire et profile vos répondants pour votre compte. C'est une communication à un tiers, généralement dans une autre juridiction, qui appartient à votre note d'information et à votre registre des traitements — et elle a lieu à chaque affichage de la page, avant tout envoi. Il dégrade aussi l'accessibilité précisément pour les personnes les moins en mesure de protester. Si votre problème de spam est un volume non ciblé, les quatre couches ci-dessus le règlent sans rien de tout cela. C'est la raison pour laquelle Schweizerform ne livre volontairement aucun CAPTCHA tiers.

Tout mécanisme anti-doublon est un identifiant

Les doublons sont un autre problème, et ici le cadrage honnête compte. Il n'existe aucun moyen d'imposer « un envoi par personne » sans rien savoir de la personne. Ce qui varie, c'est combien vous apprenez, combien de temps vous le gardez, et si cela peut être rattaché à un être humain. Selon la nLPD, une adresse IP se rapportant à une personne identifiable est une donnée personnelle : chaque ligne du tableau ci-dessous est donc une décision de traitement qui a besoin d'une finalité et d'une durée de conservation.

MécanismeCe qui est réellement stockéSon efficacitéCoût en anonymat
Marqueur d'appareil (stockage local ou cookie)Un indicateur dans le navigateur du répondant ; rien chez vousBloque les doubles envois accidentels ; contourné par un autre navigateur ou une fenêtre privéeLe plus faible — vous ne stockez rien d'identifiant
IP hachée par formulaireUne empreinte à sens unique de (formulaire + IP), pas l'adresse elle-mêmeAppliqué côté serveur et efficace ; bloque tout le monde derrière une connexion partagéeFaible si salé par formulaire et poivré côté serveur ; élevé si vous stockez l'IP brute
Jeton à usage unique ou lien personnaliséUne liste de jetons émis et de ceux qui ont été utilisésSolide ; la réponse standard pour une population connue, membres ou collaborateursDépend entièrement du fait que la liste des jetons soit reliée à des noms
Confirmation par courrielL'adresse électronique vérifiée du répondantSolide contre les doublons occasionnels, faible face à quiconque a deux adressesÉlevé — vous détenez désormais un identifiant direct à côté des réponses
Compte utilisateurUne identité complète, plus des journaux de session et d'accèsLe plus fort disponibleLe plus élevé — l'anonymat a disparu ; vous avez un répondant nommé

La règle qui en découle : choisissez le mécanisme le plus faible qui résout le problème que vous avez réellement. Une enquête de satisfaction où une poignée de doublons ne changerait aucune décision se contente de la première ligne. Un vote d'association qui arbitre un budget a besoin de la troisième. Recourir à un compte parce que c'est définitif, dans un contexte où les doublons n'auraient rien changé, transforme un jeu de données anonyme en données personnelles sans aucun gain analytique.

« Nous ne stockons qu'un hachage » n'est pas automatiquement acceptable

Le hachage d'une adresse IP reste une donnée personnelle s'il peut être recalculé. Si le sel est public, identique d'un formulaire à l'autre, ou si la valeur n'est pas poivrée avec un secret côté serveur, quiconque disposant d'une IP candidate peut confirmer une correspondance — et le même hachage apparaissant sur deux formulaires relie les deux envois. Trois propriétés font la différence : un sel par formulaire pour que la valeur ne soit pas corrélable entre formulaires, un secret détenu par le serveur pour qu'elle ne puisse pas être ramenée à une adresse par force brute, et une suppression conjointe avec l'envoi pour qu'elle ne survive pas à sa finalité.

Comment empêcher les envois en double ?

Une fois par appareil — en disant ce que c'est

Un marqueur stocké dans le navigateur du répondant empêche ce même navigateur d'envoyer deux fois. C'est une mesure au mieux par construction : un autre navigateur, un autre appareil ou une fenêtre privée la réinitialisent, et quiconque le souhaite peut l'effacer. Elle est donc exactement adaptée au problème réel le plus courant — cliquer deux fois sur Envoyer, ou remplir à nouveau le formulaire par doute — et exactement inadaptée à tout ce qui est adversarial. Les outils qui vendent cela comme « une réponse par personne » en promettent trop ; la description correcte est « une réponse par navigateur, sauf si quelqu'un s'y emploie ».

Une fois par IP — côté serveur, avec deux réserves

Vérifier si un envoi est déjà arrivé depuis le même réseau se fait côté serveur, et résiste donc aux astuces de navigateur. Les deux réserves sont des défaillances opposées, et les deux comptent. Une connexion partagée — bureau d'entreprise, école, famille, NAT d'un opérateur mobile — fait apparaître plusieurs personnes légitimes comme une seule, et la deuxième est refusée. Et les réseaux mobiles font tourner les adresses, si bien qu'une personne apparaît comme plusieurs. C'est un bon contrôle pour des situations « une par foyer » et pour des bornes lors d'événements, et un mauvais pour « une voix par membre » sur un lieu de travail.

Deux détails le rendent défendable en pratique : stocker une empreinte salée par formulaire et poivrée côté serveur plutôt que l'adresse elle-même, et supprimer l'empreinte quand l'envoi est supprimé — ainsi retirer une réponse libère à nouveau ce réseau, et l'identifiant ne survit pas aux données qu'il protégeait.

Les jetons à usage unique — la bonne réponse pour une population connue

Si vous savez qui a le droit de répondre — membres, collaborateurs, ménages invités, participants inscrits —, remettez à chaque personne un code ou un lien à usage unique, et marquez-le utilisé lors de l'envoi. C'est exact, résistant aux doublons et, surtout, maîtrisable dans ses propriétés de confidentialité : révéler une identité dépend uniquement du fait que vous conserviez la correspondance entre le jeton et la personne. Conservez-la et vous avez une enquête pseudonyme. Détruisez-la à l'émission et vous obtenez quelque chose de bien plus proche de l'anonymat — voir la section suivante.

La mesure qu'on oublie : rendre le doublon inutile

Une grande part de l'angoisse des doublons est en réalité une angoisse liée à un gain : places limitées, bon d'achat, participation à un concours, voix qui fait basculer un résultat. Quand vous ne pouvez pas vérifier fortement, supprimez plutôt l'incitation — plafonnez le total, attribuez par tirage au sort parmi toutes les entrées plutôt qu'au premier arrivé, dédoublonnez ensuite lors de l'examen plutôt qu'à la porte, ou rendez la récompense indépendante du nombre d'envois. Relire 300 réponses pour repérer les doublons évidents coûte un après-midi ; identifier 300 personnes coûte une base légale.

Comment vérifier les répondants sans perdre l'anonymat ?

C'est l'exigence qui semble impossible et qui n'est que fastidieuse. Elle revient sans cesse : une association où chaque membre vote une fois sans qu'aucune voix soit attribuable ; un canal de signalement qui ne doit accepter des rapports que de collaborateurs ; une enquête interne qui doit atteindre tout le monde une fois et n'identifier personne. Le schéma qui la résout tient à une idée — séparer le contrôle d'éligibilité de l'envoi, et ne jamais stocker les deux ensemble.

1

Contrôler l'éligibilité dans un système

Utilisez le registre des membres, la liste RH ou la liste d'invitation pour établir qui peut répondre. Ce système connaît les noms ; c'est son rôle.

2

Émettre un justificatif non relié

Remettez à chaque personne éligible un jeton à usage unique qui n'est pas dérivé de son identité et n'est pas enregistré en regard de celle-ci. Générez les jetons, distribuez-les, et ne conservez que le nombre — pas qui a reçu quoi.

3

Accepter l'envoi contre le jeton, pas contre la personne

Le formulaire vérifie que le jeton est valide et non utilisé, le marque utilisé, et stocke les réponses sans autre référence à celui-ci. Résultat : une réponse par personne éligible, sans chemin d'une réponse vers un nom.

4

Renoncer aux extras tentants

Pas de journalisation d'IP sur ce formulaire, pas de liens personnalisés, pas de champ courriel « pour l'accusé de réception », pas d'horodatage d'une précision qui identifie dans les petits groupes. Chacun de ces éléments reconnecte discrètement ce que l'étape 2 avait séparé.

5

Surveiller le seuil de restitution, pas seulement la collecte

La vérification n'est que la moitié de l'anonymat. Publier un résultat calculé sur trois réponses réidentifie les personnes, quelle que soit la propreté de la collecte — les seuils sont dans notre article sur les sondages anonymes de collaborateurs.

Dire honnêtement le risque résiduel

Ce schéma offre un anonymat pratique solide, non une garantie cryptographique. La personne qui distribue les jetons pourrait noter lequel est allé à qui ; une petite population plus une réponse en texte libre identifie son auteur de toute façon ; et le système d'éligibilité connaît toujours le taux de réponse, ce qui dans une équipe de cinq revient presque à savoir qui a répondu. Dites-le quand vous promettez l'anonymat. Une promesse précise survit à une personne sceptique en réunion, une promesse absolue non — et la distinction entre anonyme et pseudonyme mérite la lecture de formulaires anonymes et pseudonymes.

Faut-il exiger un compte ou une adresse électronique ?

Parfois, et il vaut la peine de choisir son camp en conscience. Exiger l'identité est la bonne réponse quand le processus est de toute façon nominatif : une demande de prestations, un dossier de subvention, une admission de patient, un achat, tout ce à quoi vous répondrez individuellement. Là, l'identité est le sujet, et prétendre le contraire ajoute de la friction sans ajouter de confidentialité.

C'est la mauvaise réponse quand la valeur des données dépend de la franchise. Griefs, signalements, enquêtes d'engagement, rapports de harcèlement, retours sur l'encadrement : dès qu'un compte se dresse devant le formulaire, la qualité des réponses baisse et celles qui arrivent sont les plus prudentes. Ce n'est pas hypothétique — c'est le résultat le plus robuste de la recherche sur le feedback interne, et c'est pourquoi notre cas d'usage RH et lanceurs d'alerte traite la collecte sans identité comme une exigence fonctionnelle et non comme une politesse de confidentialité.

  • Exigez l'identité quand vous devez répondre individuellement, vérifier précisément un droit, satisfaire une obligation légale d'identification, ou traiter de l'argent.
  • Évitez l'identité quand la finalité est la mesure ou le signalement de manquements, quand la population est assez petite pour être réidentifiée, ou quand vous avez promis l'anonymat quelque part dans vos communications.
  • Entre les deux, préférez un jeton à usage unique à un compte, et un champ de contact facultatif à un champ obligatoire — « laissez une adresse si vous souhaitez une réponse » respecte les deux cas à la fois.

Ce que la plateforme devrait gérer par défaut

Une partie de cette liste ne devrait pas être votre décision. Une plateforme de formulaires devrait arriver avec des contrôles anti-abus déjà appliqués, réglés généreusement et respectueux de la vie privée — de sorte qu'il ne vous reste qu'à choisir la règle de doublon de chaque formulaire.

  • Une limitation de débit sur la surface publique — par formulaire et globale, sur plusieurs fenêtres de temps, tolérante aux bornes et aux réseaux partagés, et échouant en mode ouvert quand le limiteur lui-même a un problème.
  • Des limites aussi sur les bords bruyants, pas seulement à l'envoi : affichages du formulaire, tentatives de code de déverrouillage et requêtes vers des identifiants de formulaire inexistants, afin de borner également l'énumération et le gonflage du compteur de vues.
  • Des blocages automatiques qui expirent pour une source qui déclenche sans cesse des refus, plus un blocage manuel pour le rare cas persistant — avec une entrée d'audit dans les deux cas.
  • Une règle de doublon par formulaire, réglable sans ticket de support : libre, une fois par appareil, ou une fois par réseau.
  • Une application respectueuse de la vie privée — une empreinte salée par formulaire et poivrée côté serveur au lieu d'une adresse IP stockée, supprimée avec l'envoi.
  • Aucun script tiers sur la page du formulaire, pour que la couche anti-abus ne devienne pas elle-même une communication à un sous-traitant étranger.
  • Le blocage des adresses jetables à l'inscription, là où des boîtes éphémères permettent à un seul acteur de créer des comptes sans limite — et délibérément pas à la connexion ni à la réinitialisation du mot de passe, afin qu'un client existant sur un tel domaine ne soit jamais coupé de ses propres données.

Une chose qu'aucune plateforme ne peut faire pour vous : inscrire ces mesures dans la note d'information. Si vous limitez le débit, bloquez des adresses ou empreignez des réseaux, c'est un traitement, et la transparence de l'art. 19 nLPD s'y applique comme aux réponses. Une ligne — « nous enregistrons des données techniques telles qu'une empreinte de réseau afin de prévenir les abus, conservées pendant la durée du formulaire » — suffit, et c'est précisément la ligne que cherche un auditeur.

Choisir le contrôle pour un formulaire réel

FormulaireRisque réelContrôle recommandé
Formulaire de contact ou d'avis publicSpam automatisé ; doubles envois accidentelsLimitation de débit et champ piège ; marqueur d'appareil ; aucun identifiant
Inscription à un événement à places limitéesSurréservation ; inscriptions multiples opportunistesPlafond de réponses et date de clôture ; l'adresse est de toute façon nécessaire pour la confirmation
Vote d'association ou de comitéLe double vote décide du résultatJetons à usage unique issus du registre des membres, émis sans lien ; résultats restitués uniquement en agrégé
Enquête d'engagement du personnelLes doublons faussent la moyenne ; l'identification tue la franchiseUn lien partagé, pas de compte, pas d'invitations personnalisées, seuil de restitution appliqué à chaque cellule
Canal de signalementL'exposition de l'auteur du signalement est tout le risque ; les rapports parasites sont supportablesCode de déverrouillage diffusé en interne ; aucune conservation d'IP ; un canal de réponse qui n'exige pas d'identité
Demande de subvention ou d'aideDemandes multiples frauduleuses ; contenu très sensibleEnvoi nominatif par conception, avec contrôle d'accès strict et règle de conservation pour les dossiers refusés

Lisez d'abord la colonne du milieu. Dans quatre de ces six lignes, le doublon est le moindre risque — c'est la forme générale de ce problème, et la raison pour laquelle « empêcher les doublons » ne devrait jamais être traité avant « à quel prix ».

Cinq erreurs qui cassent l'anonymat par accident

  • Des liens d'invitation personnalisés sur une enquête « anonyme ». La façon la plus courante dont une promesse d'anonymat devient fausse. Si le lien identifie le destinataire, la réponse est au mieux pseudonyme.
  • Conserver la correspondance jeton-personne « au cas où ». Elle ramène tout le dispositif à un dispositif nominatif, et elle sera réclamée dès que quelqu'un voudra relancer les non-répondants.
  • Journaliser des adresses IP en clair pour prévenir les abus, puis ne jamais les supprimer. La finalité s'éteint à la fermeture du formulaire ; les données devraient s'éteindre avec elle.
  • Ajouter un CAPTCHA sans mettre à jour la note d'information. Un appel à un tiers à chaque affichage est une communication, que quelqu'un envoie ou non.
  • Un horodatage à la seconde dans une petite équipe. Combiné à des horaires connus, l'heure d'un envoi identifie son auteur aussi sûrement qu'un nom — la même classe de fuite qu'un croisement démographique.

L'essentiel

Traitez les deux problèmes séparément. Le spam est un volume : limitation de débit, champs pièges, blocages qui expirent et plafonds structurels s'en chargent sans rien apprendre sur personne. Les doublons sont une affaire d'identité, et la seule question qui mérite débat est : combien peu d'identité pouvez-vous dépenser ? Un marqueur d'appareil si le risque est un double-clic égaré ; une empreinte de réseau respectueuse de la vie privée si « une par foyer » suffit ; un jeton à usage unique non relié s'il faut être exact et rester anonyme ; un compte seulement là où le processus est nominatif de toute façon.

Et quand on vous demande les trois propriétés à la fois — à l'épreuve du spam, à l'épreuve des doublons, anonyme —, la réponse n'est pas « impossible ». Elle est : vérifiez l'éligibilité à un endroit, acceptez les envois à un autre, et ne joignez jamais les deux.

Schweizerform applique par défaut des limitations de débit et des blocages automatiques qui expirent sur la surface publique des formulaires, propose par formulaire une règle libre, une fois par appareil ou une fois par réseau, et applique l'option réseau au moyen d'une empreinte salée par formulaire et poivrée côté serveur, supprimée avec l'envoi — jamais d'adresse IP stockée. Aucun script tiers ne s'exécute sur la page du formulaire : la couche anti-abus n'est donc pas elle-même une communication. Le cadre de conception plus large est dans créer un formulaire en ligne sûr et sur notre page sécurité. Pour la version la plus difficile du problème « une fois par personne » — un vote des membres où l'exigence d'une voix par membre entre en conflit avec le secret du scrutin — voyez les formulaires d'adhésion et de gestion des membres.

Avertissement : cet article est une information générale et un contenu marketing, non un conseil juridique. Les références à la nLPD (art. 6, 19) et au traitement des adresses IP comme données personnelles sont des résumés simplifiés reflétant l'état de la situation en juillet 2026. Le caractère proportionné d'une mesure anti-abus donnée, et la durée pendant laquelle ses données peuvent être conservées, dépendent de votre situation — faites examiner par un conseil qualifié les dispositifs impliquant des données sensibles, des obligations de participation du personnel ou des procédures de vote.