Le captcha invisible pour votre site Internet » Gazelle du Web 

Menu

Captcha invisible (HoneyPot ou Pot de miel)

13 juillet 2011 par Davy
Captcha invisible (HonetPoy ou Pot de miel)

Captcha invisible (HonetPoy ou Pot de miel)

Dans un précédent article, nous avions abordé la difficulté de réaliser un captcha (ou antispam) pertinent, c’est-à-dire qui allie à la fois une bonne lisibilité pour l’utilisateur et bonne efficacité contre les méchants robots qui veulent absolument nous vendre leur viagra en remplissant de façon automatique les formulaires de nos sites Internet. Et si la solution ultime était de ne plus avoir de captcha…

Principe du pot de miel ou piège à robot

Evidemment, vous l’avez deviné, l’idée n’est pas de laisser tomber votre barrage anti-robots spammeur mais de le remplacer par un captcha totalement invisible. Son principe est d’une simplicité enfantine, il consiste à tendre un piège aux robots.

La majorité des robots spammeur vont parcourir le web à la recherche de formulaires de contact. Dès qu’ils ont trouvé un formulaire, ils vont chercher remplir chaque champ puis soumettre le formulaire.

Le piège que nous proposons de placer (d’où le terme de pot de miel) est basé sur une faiblesse de ces robots, qui sont généralement incapables d’interpréter du CSS. Le principe est de placer un champ vide, qui sera rendu invisible en CSS. Si l’utilisateur est bien un humain, il ne remplira pas ce champs car il ne le verra pas, en revanche, un robots spammeur le remplira.

Un peu de technique

 

Pour mettre en œuvre, un pot de miel à priori rien de bien compliqué, il suffit d’insérer un champs vide rendu invisible via du CSS dans un formulaire.

<p>Si vous voyez ce champs, ne le remplissez pas <input type= »text » name= »commentaire » id= »commentaire  » value= » » /></p>

La technique du champ vide vous permettra d’éliminer un grand nombre de tentatives de spam, mais voilà, comme beaucoup de webmaster font des contrôles sur les champs des formulaires (pour vérifier par exemple le bon formatage d’un champ email), certains spammeurs font travailler des humains pour pré remplir ces champs et ainsi passer les contrôles du formulaire. Dans ce cas, notre captcha invisible risque d’être mis en échec.

 

Pour résoudre ce léger problème, nous proposons une petite variante qui consiste à pré remplir notre champ invisible avec un token (chaine de caractère à la durée de vie relativement courte) qui permettra au serveur de vérifier si le formulaire a été préalablement chargé dans le navigateur avant d’être rempli et soumis.
Dans sa version la plus simple, le serveur peut créer un token basé sur une chaine aléatoire qui est stocké en session.

<p>Si vous voyez ce champs, ne modifier pas son contenu <input type= »text » name= »commentaire » id= » commentaire  » value= »atHUiopfgKuotG45sd » /></p>

Conclusion

Cette technique se base sur un point faible des robots spammer et leur incapacité à interpréter correctement les CSS. Il est fort à parier qu’une parade sera trouvée par les robots-spammer si cette technique se généralise, en attendant, nous pouvons en profiter pour simplifier nos formulaires et les rendre plus ergonomique.

 


6 Commentaires »

  1. Un ami a appliqué ceci sur l’un de ses forums. Cela a bloqué tous les spammeurs d’un coup, d’autant que le CAPTCHA était bien visible, un simple texte indiquant de ne pas le remplir, texte qu’il faut savoir lire et comprendre pour l’interpréter.

    Ceci étant, tu supposes ici que les robots ne savent pas interpréter le CSS. Tu as une vision quelque peu erronée de l’automatisation web. En effet, si c’est le cas de nombreux robots spammeurs, ce n’est pas le cas de tous les robots.

    Je t’invite à te documenter du côté d’outils tels que iMacros ou encore Selenium pour découvrir un monde nouveau.

    Enfin, puisque je vois que tu as un CAPTCHA reCAPTCHA protégeant tes commentaires, garde à l’esprit qu’ils ne pourront résister à des êtres humains. Or, le travail Humain coûte peu, dans certains pays, et rapporte plus que ce coût humain de la résolution d’un CAPTCHA graphique. Il devient alors de plus en plus pertinent de s’orienter non plus vers des protections purement graphiques, mais plutôt des protections logiques. Mais si c’est autrement plus difficile à contourner, c’est aussi moins évident à mettre en place.

    Comment par Martin — 13 juillet 2011 @ 8 h 39 min

  2. @martin : en fait, je suppose (et pour l’instant je le vérifie) que la majorité des robots.txt sont peu évolué, maintenant, tu as raison, il existe des robots performant (voir des humain performant). Comme j’en parlais dans un précédent article, à mon sens, un captcha performant n’est pas celui qui éliminera 100% du spam, mais mais celui qui offre le meilleur compromis entre facilité d’utilisation pour les internautes tout en conservant une bonne efficacité. C’est en ce sens ,que les captcha invisibles me semblent intéressant.

    voir aussi article: http://www.gazelle-du-web.com/ergonomie/captcha-ou-antispam-privilegier-la-securite-ou-la-lisibilite/ sont suffisants).

    Comment par La Gazelle du Web — 17 juillet 2011 @ 8 h 36 min

  3. J’ai eu l’occasion de tester le captcha invisible sous plusieurs formes (champ hidden, CSS visibility, CSS opacity:0, plusieurs champs invisibles…) et rien ne fonctionne. Après une période de calme tous ces systèmes ont été déjoués et le spam est redevenu très abondant sur mon site !
    Nouvelle tentative avec un champ visible accompagné du texte : « ne remplissez pas ce champ »

    Comment par Greg — 27 octobre 2011 @ 17 h 35 min

  4. Avez vous essayé de placer (en JS) un token dans votre champs invisible ?

    Comment par La Gazelle du Web — 28 octobre 2011 @ 5 h 22 min

  5. Bonjour (et désolé pour le temps de réponse…)

    Je suis encore attaqué par les robots spammeurs. Aucune de mes solutions ne fonctionne pas même les images générées à moins de les rendre illisibles… Je n’ai pas compris le principe du token ni comment le mettre en place.

    Comment par Greg — 1 décembre 2011 @ 11 h 08 min

  6. @Greg, m’envoyer via le formulaire de contact le lien vers ton captcha.

    Comment par La Gazelle du Web — 1 décembre 2011 @ 22 h 16 min

Laissez un commentaire