J'ai juste pensé que je devais partager cette solution que j'ai trouvé fonctionne très bien.
Je l'appelle le Mannequin Champ (bien que je n'ai pas inventé ce afin de ne pas les crédit-moi).
En bref: vous avez juste à insérer dans votre <form>
et vérifiez qu'il soit vide au moment de la validation:
<input type="text" name="email" style="display:none" />
L'astuce est de tromper un bot en pensant que c'est pour insérer des données dans un champ obligatoire, c'est pourquoi j'ai nommé l'entrée "e-mail". Si vous avez déjà un champ appelé e-mail que vous utilisez, vous devriez essayer de nommage le mannequin champ de quelque chose d'autre comme la "société", "téléphone" ou "emailaddress". Il suffit de choisir quelque chose que vous savez que vous n'avez pas besoin et ce qui sonne comme quelque chose que les gens seraient normalement trouver logique à remplir dans un formulaire web. Maintenant masquer l' input
champ à l'aide de CSS ou de JavaScript/jQuery - ce que vous convient le mieux - juste ne pas mettre input type
de hidden
, sinon le bot ne pas tomber pour elle.
Lorsque vous validez le formulaire (soit client ou côté serveur) vérifiez si votre mannequin champ a été rempli pour déterminer s'il a été envoyé par un humain ou un robot.
Exemple:
Dans le cas d'un homme:
L'utilisateur ne verra pas le mannequin de champ (dans mon cas appelé "e-mail") et de ne pas tenter de le remplir. Ainsi, la valeur de la tétine champ doit toujours être vide lorsque le formulaire a été envoyé.
Dans le cas d'un bot: Le bot va voir un champ dont le type est - text
nom email
(ou quoi que ce soit vous l'avez appelé) et seront logiquement tenter de le remplir avec des données appropriées. Il ne se soucie pas si vous le style le formulaire de saisie avec un peu de fantaisie CSS, web-développeurs le font tout le temps. Quelle que soit la valeur de la tétine, le terrain est, on s'en fout, tant que c'est plus grand que 0
caractères.
J'ai utilisé cette méthode sur un livre d'or en combinaison avec le CAPTCHA, et je n'ai pas vu un seul spam post depuis. J'avais utilisé un CAPTCHA seule solution avant, mais finalement, il a permis à environ cinq messages de spam à chaque heure. Ajouter le mannequin champ du formulaire est arrêté (au moins jusqu'à maintenant), tous les spam d'apparaître.
Je crois que cela peut aussi être utilisé très bien avec un login/formulaire d'authentification.
Avertissement: bien sûr, cette méthode n'est pas 100% infaillible. Les robots peuvent être programmés pour ignorer les champs de saisie avec le style display:none
lui est appliquée. Vous avez aussi penser aux personnes qui utilisent une certaine forme de l'auto-complétion (comme la plupart des navigateurs ont intégré!) pour remplir automatiquement tous les champs du formulaire pour eux. Ils pourraient tout aussi bien choisir un mannequin de champ.
Vous pouvez également varier un peu en laissant le mannequin domaine visible, mais à l'extérieur des limites de l'écran, mais c'est totalement à vous.
Être créatif!