Catégories
Referencement

Les captchas les plus simples sont souvent …

[one_third][/one_third]

[one_third][/one_third]

[one_third_last]

…les meilleurs. Après avoir passé du temps sur un « gros template » pour Sick Submitter, il y a vraiment très peu de captchas que je [ou ma famille en Inde] n’arrive pas à passer. Cependant, un captcha a retenu mon attention, mais avant d’aller plus loin, petit tour d’horizon des principaux captchas.

[/one_third_last]

Les differents types de CAPTCHAS

Le CAPTCHA image

Bon celui-ci, pas la peine de le présenter je pense. Tout le monde connait recaptcha ou ses potes.
Il s’agit d’une image plus ou moins lisible avec un ou plusieurs mots (ou chiffres) qu’il vous faut recopier.

[box type= »info »]Avantages :

  • Il faut investir dans un très très bon OCR pour casser soi-même ces captchas
  • Impossible à passer si vous n’utilisez pas une main d’oeuvre humaine

[/box]

[box type= »warning »]Inconvénients :

  • Il suffit d’utiliser des plateformes comme decaptcher, deathbycaptcha, bypass captcha et compagnie pour en venir à bout

[/box]

Le CAPTCHA « homemade » et/ou opensource

Celui la généralement, à moins d’un coup de génie, est assez facilement contournable. Il utilise dans la plupart des cas la librairie GD de PHP ou un équivalent, et dans certain cas, un « ID » permettant d’établir une correspondance avec le Captcha. Avec un peu de temps, si les codes font moins de 6 caractères, vous pouvez très facilement vous contruire votre propre « hashtable » pour ces captchas.

[box type= »info »]Avantages :

  • Certains scripts étant utilisés sur une grosse quantité de plateformes, si il y a une faille à exploiter c’est banco. (Merde on vient de me souffler que c’est un inconvénient).
  • Tres simple à mettre en place

[/box]

[box type= »warning »]Inconvénients :

  • Voir la partie avantages
  • Il faut connaitre un minimum la programmation afin de juger de la robustesse du code fourni

[/box]

Le CAPTCHA mathématique

Et oui, le fameux « Combien font 12 + 4 » ou autre. Pour celui ci, autant dire qu’avec les fonctions regex() et calc() de Sick, c’est vraiment très très basique.

[box type= »info »]Avantages :

  • Les indiens seront inutiles sur ce coup (attention, dépend des softs et de la plateforme utilisée !!)
  • S’adresse à un public ayant un niveau minimum CP. Donc vous ne serez pas spammés par les skyblogs users 🙂

[/box]

[box type= »warning »]Inconvénients :

  • Les récents softs SEO intègrent des fonctions assez poussées pour résoudre ce type de protection
  • Même avec un script perso, c’est basique à contourner

[/box]

La question basique

Pour ne citer personne, un très célèbre Pink Hat (d’un autre coté ils sont 2 ou 3 je crois:P) l’utilise sur son blog. Il s’agit d’un jeu de questions/réponses pré-défini auquel il faut répondre correctement, un captcha quoi.

[box type= »info »]Avantages :

  • Plus robuste que les précédentes protections
  • Je viens de faire une ancre de ouf malade pour Gwaradenn

[/box]

[box type= »warning »] Inconvénients :

  • Tout comme les CAPTCHAS homemade, si vous ne possédez pas un jeu conséquent de questions/réponses, il sera facile de se concocter une base de données perso avec les questions et les réponses adéquates
  • Des BDD centralisées avec un grand nombre de ces questions existent, et pour les plateformes dans la langue de Shakespear, il existe la fonction answer() dans Sick Submitter par exemple. (Bon OK, c’est aussi un avantage)
  • Il ne faut pas avoir quitté l’école en CE1, car certaines questions nécessitent tout de même une certaine culture générale. Comme par exemple des notions en géographie

[/box]

Le CAPTCHA ou seul un employé de la NASA ou un docteur en physique quantique peut répondre

Clairement ici, ne vous adressez pas au grand public.
Le concept va faire tripper 5 mecs sur terre à mettre 10 minutes pour écrire un commentaire et 4 jours à resoudre le CAPTCHA. Si bien que quand le mec va cliquer sur envoyer, la session aura expiré et il devra se retaper une équation qu’il mettra 4 jours à résoudre, pour finalement envoyer un mail avec son commentaire.

[box type= »info »]Avantages :

  • Adieu le spam
  • Beaucoup trop marginal
  • S’adresse à un public très très très limité

[/box]

[box type= »warning »]Inconvénients :

  • En plus de ne plus avoir de spam, vous n’aurez plus de commentaires

[/box]

Protection sans CAPTCHA

Les champs de formulaire cachés

La veille technique de siou, qui consiste à mettre un input caché dans un formulaire qu’il ne faut pas remplir afin de poster le formulaire. Autant dire que tous les softs SEO dignent de ce nom rigolent quand ils voient cette protection, et oui, ça doit faire plus de 10 qu’on ne remplit pas tous les champs des formulaires que l’on trouve comme des bourrins.

[box type= »info »]Avantages :

  • Aucun
  • Fait marrer les connaisseurs

[/box]

[box type= »warning »]Inconvénients :

  • Se fait péter par tous les codeurs et softs SEO

[/box]

Les actions visuelles, par clic

On commence à en voir apparaitre quelques unes, mais elles restent relativement minoritaires. Certaines demandent de déplacer le curseur afin de pouvoir poster, d’autre de cliquer sur l’image correspond à un mot (« Cliquez sur l’image representant un chat »), d’autre de dessiner une forme géométrique avec la souris afin de pouvoir poster …

[box type= »info »]Avantages :

  • Solutions minoritaires
  • Pour certaines, très facilement by-passable (notamment celles utilisant javascript)

[/box]

[box type= »warning »]Inconvénients :

  • Pas du tout adapté aux malvoyants
  • Pour certaines, très facilement by-passable. Pardon je l’ai déjà dit.

[/box]

Alors comment faire ?

Et bien c’est une {mal|}hereuse découverte que j’ai fait en … non ça ne vous regarde pas en fait.
Un CMS très connu propose un module de CAPTCHA intégrant cette solution, mais peu utilisée. Il s’agit en fait du Captcha CSS.
Le concept est relativement simple et puissant. Avec un savant mélange de « float:left » et « float:right », le code apparait correctement à l’écran, mais dans le désordre dans le code source, et ce de façon aléatoire !! Si vous aimez les défis, faites vous plaisir.

Lectures connexes :

29 réponses sur « Les captchas les plus simples sont souvent … »

Ma foi je n’ai pas de captchas pour mes commentaire et jusqu’a maintenant je dois bien avouer que akismet suffit largement a me protéger du spam – Juste je vais de moins en moins regarder ce qui se trouve dans les spam et je supprime probablement de plus en plus de faux positifs… mais bon …. z’avez qu’a faire comme moi, quand vous savez que vous etes dans les spams faite peter un tweet a l’auteur du blog …

J’ai pas le matos pour jouer à ça mais ouep je dirais comme @rivsc

Mais j’aime pas qd tu te moque des input cachés … Moi je ne les cache pas, mais je mets un « Attention humain, ne pas remplir » … Ben les ptis soft SEO se font encore avoir 🙂

Sinon un truc que j’ai bien faire c’est vérifier que le POST soit bien fait en XHR ^^ le temps qu’un trou duc trouve la supercherie, il est passé à autre chose 🙂

Cool sinon comme captcha, techniquement, il fallait y penser

Personnellement, je passe par Selenium. En conséquence, je capture la zone d’écran où apparaît l’image telle qu’affichée par le navigateur avant de la renvoyer à l’API de résolution de CAPTCHA. Les JavaScript, images, float et autres astuces CSS, je m’en moque comme de l’an 40. Ceci dit, non, je ne spamme pas (jamais). 😉

J’ai appris qu’au nouvel an, Le Juge envoi toujours un SMS à sa famille pour prévenir que la carte de bonne année est passée dans les spams de La Poste.

Pour ma part j’ai opté pour des jeux de questions mathématiques (plusieurs différentes). Si ce n’est pas révolutionnaire, ça évite quand même pas mal le spam car j’en ai quasiment pas.

En tout cas, intéressant de savoir que cela fait partie des captchas faciles à péter.

@Le Juge : tu noteras que tu ne passes jamais en spam chez moi 😉

Bel article et joli design.
Le Juge, le problème d’akismet, c’est qu’il va filtré de nombreuses personnes et que l’on peut encore se faire spammer.

@risvc
C’est fort probable, mais un peu « lourd » à résoudre par rapport aux autres exemples cités dans l’article.

@lejuge
Pour akismet, cote blogueur, OK, bien que je ne sois pas complètement fan.
Et pour moi il ne fait pas parti des Captchas à proprement parler, puisque c’est un filtre post-soumission. Je lui préférerai une solution pure-blacklist, a savoir tout ce qui n’est pas dans la langue que j’ai défini, fait plus de x mots et contient moins de 3 liens => BOUM. Et je ne veux plus en entendre parler.
Apres, Akismet est bien pour une chose, mais ça nous le verrons plus tard 😉

@Jeremy
Je ne me moque pas des input caches, mais aujourd’hui, a moins de bourriner en curl pour remplir tous les champs d’un formulaire, c’est assez facilement by-passable.
Pour les posts en XHR, c’est une tres bonne idee 😉 Mais meme remarque que precedemment. Les « vrais » softs SEO utilisent souvent un browser, soit IE, soit leur propre browser pour poster. Donc le XHR sera inutile dans ces cas la.

@Martin
J’ai vu sur twitter que tu étais un grand fan de selenium 🙂 Le souci ici, c’est que la zone (je parle x-y) ne se situe pas toujours au meme endroit, et que le container, ne possede pas d’attributs permettant de l’identifier (pas de class, id ou autre).

@axenet
Quand le sms ne passe pas dans les spams 😉

@Graphiste
Bonne conclusion 🙂

@Hervé
En fait, ils font parti de ceux faciles a péter, mais étant donne qu’ils sont un peu moins utilisés que les solutions recaptcha et compagnie, la plupart des spammeurs ne se font pas chier a résoudre ce type de captchas, mais moi si 😛

@Phil
Cf ma réponse au juge, akismet ne fait pas tout et n’agit pas pré-submission.

@Aurélien
Merci, et oui akismet n’est pas un magicien.

Hello,

Je ne comprend pas vraiment l’avantage du captcha CSS par rapport au captcha images, à part peut-être une accessibilité accrue pour l’internaute. Dans un cas comme dans l’autre, passer par une plateforme genre decaptcher marche parfaitement non ?

@RDD : Je n’ai pas rencontré de cas où je n’ai pas pu identifier un XPath générique me permettant d’accéder à la zone que je veux.

XPath n’est pas évident à maîtriser au début, mais il permet de dire « trouve le SPAN qui se trouve à la troisième colonne de la deuxième ligne du second tableau après le troisième titre qui suit le premier HR de la page. »

Ceci dit, je ne spamme pas, me contentant d’utiliser Selenium pour publier automatiquement sur des sites depuis une interface centralisée où je rédige semi-automatiquement ou manuellement, le tout sans passer par une API (soit pour plus de discrétion, soit parce qu’aucune API n’est disponible ou active).

@martin
Oui, pour Xpath pas de souci, ça fait longtemps qu’il fait parti de mes tools 😉 Mais dans ce cas précis, l’astuce de ce Captcha, c’est qu’il se place aléatoirement dans le formulaire, donc même avec XPath, c’est cuit cuit (l’exemple que je fourni est juste illustratif, le CMS qui l’utilise le place soit après l’input prénom, soit après l’input email, soit dans carrement dans un autre fieldset …).

@Leimi
Salut,
Pour les plateformes comme decaptcher, tu es obligé de sauver l’image et de jouer avec leur API. Hors le captcha CSS, n’est pas une image et comme l’a fait remarquer justement Martin, il aurait été facile via Xpath ou une capture screen d’y remédier. Seulement, la subtilité est telle qu’il ne se situe jamais au même endroit, donc Xpath ou coordonnées x/y sont inexploitables.

La question personnalisée (voir SMF) et la modification du formulaire de soumission(input hidden) sont selon moi les techniques les plus efficaces contre le spam automatique.

Cependant ça ne protège pas des cons qui viennent spammer manuellement votre blog juste pour gratter un lien ( les coms du style « excellent article » de « keyword » qui n apporte rien a l article ). La solution ? Virer le champ « website ». ( oui complètement a l opposé de dofollow ou comment love 🙂

Perso, je n’utilise pas de captcha, je trouve ça très chiant, perte de temps inutile, laid et inutile vu que c’est très souvent contournable… Je filtre simplement les inputs d’une manière maison… En gros, tu postes ce que tu veux, si les réponses sont pertinentes ca passe sinon ca va à la poubelle et je n’emmerde personne avec des capchtcas…
PS : Une solution assez efficace qui à mon avis est très difficilement crackable est l’image blanche sur fond blancet un champ blanc. Il n’y a rien à voir, rien à poster, rien à faire, si tu cherches à poster à voir, à cliquer etc … tu es rejeté.

Il en reste des programmateurs qui utilisent le champ caché et il a l’air de bien fonctionner pour eux. Comme vous le dites, parfois le captcha le plus simple (ou le plus ridiculisé) s’avère le plus…fiable. Ce Captcha CSS, avez-vous un lien qui montre la démarche d’installation ? Merci pour vos conseils.

– Marie –

Bon pour la plupart des captchas on va dire que ça élimine déjà les amateurs, je ne connaissais pas la technique de captcha en CSS, c’est plutôt une bonne idée. Pour un truc vraiment sûr il faut faire sa petite recette maison, trouver le truc original.

Il y certain site, plus précisément des blogs wordpress qui utilisent le captcha mathématique, mais même en entrant le résultat manuellement, il renvoie toujours une valeur fausse! Un bug des fonctions regex()/calc() ou bien un bug du blog elle-même?

le captcha css pourquoi pas mais je vois pas mal de méthodes pour le contourner, ca va pas durer longtemps ou alors j’ai rien compris !

je dirai qu’une question complexe donne de bons résultats et evite certain type de spam …

ya spam et spam, et le fait d’arriver à faire partir qq’un qui est juste de passage pour avoir un LRD …

rien ne vaut un bon filtrage manuel et fermeture des comment …

Sebastien

Il existe aussi des solutions type « mail in black » qui ont l’air assez efficaces, par contre, c’est payant et lke mail de confirmation arrive souvent sur la boite spam… Curieux pour un outil anti-spam !

Perso je suis plutot de l’avis de @CM, visuellement le captcha c’est pas terrible terrible.

Pour éviter le spam-co by robots, je préfére une restriction du temps passé sur la page.
On calcul la différence entre le moment d’arrivée sur la page et le moment ou est posté le comment et voili voilou …

Très bon article mais je me demande pour éviter un spam qu’est ce qui serait le plus approprié, faire faire à la personne un calcul ou bien lui faire recopier un captcha ?

Le recaptcha est une bonne alternative car il autorise les erreurs, et gère aussi l’audio. De surcroît, le taux de disponibilité reste excellent.

Très bon article, mais je vois que finalement vous n’avez opté pour aucune de ces méthodes. Au fait d’où vient le terme captcha ?

La photo avec breaking captcha m’a fait marrer.
les captchas je ne les aime pas. Ils te retardent grave
mais du point de vue d’un propriétaire d’un blog ils sont utiles.

les captchas c’est efficace pour freiner les spammeurs, quand c’est trop difficile, ça peut poser des problèmes aux internautes

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *