Captcha et PHP

12 Sep
September 12, 2006

A la recherche d’un script permettant de me générer un captcha (un détecteur de manipulation humaine en gros), je suis tpombé sur un script pas mal fait et pratique à utiliser: cryptographp.

En quelques clics de souris, ce petit outil est inséré dans le formulaire d’une page.

Reste plus qu’à insérer un appel pour la session ( session_start(); ) et l’image ( ).

Le tout sera testé automatiquement lors de la publication du formulaire avec un simple test conditionnel (if ($_SESSION['cryptcode'] == md5($_POST['code'])) { echo "OK"; } else { echo "ERREUR"; }).

Le fichier de configuration permet de modifier rapidemnt de nombreux paramètres comme la déformation du texte (angle, taille, police) ainsi que les couleurs de texte et de fond.
Ce script requiert PHP 4.3 minimum et la librairie GD.
Lien: http://www.cryptographp.com

4 replies
  1. Citizen K says:

    Le problème principal des CAPTCHA étant, malheureusement, leur mauvaise accessibilité. Sans parler du fait qu’ils portent la charge du problème sur l’utilisateur final, ce qui peut parfois être dissuasif pour certains (pffft! encore u champ de formulaire à remplir?!)

    Selon l’usage que tu veux en faire, une adaptation d’Akismet ou “http://www.homelandstupidity.us/software/bad-behavior/”>Bad Behaviour peuvent se révéler efficaces tout en étant un peu plus transparents pour l’utilisateur. Maintenant, cela n’est pas non plus adapté à toutes les sitations, loin de là … :)

    Reply
  2. sam says:

    Tu as raison Citizen K, cela reporte le problème sur l’utilisateur… et suivant un article que je lisais, cela évite de faire porter aux utilisateurs le poids des problèmes. Je viens de jeter un coup d’oeil à Bad Behaviour, cela me paraît très intéressant… merci

    Reply
  3. Pierre says:

    Le probleme de l’accessibilité est mesurer…
    Cryptographp est un script qui permet à son utilisateur de paramétrer le degré de visibilité des caracteres. Il peut très bien afficher de gros caractères peu déformés qui seront tout aussi (sinon plus) visible qu’un texte sur le navigateur. Evidemment, moins le caractere est déformé, plus un robot est sencé être capable d’en interpréter la valeur… Ca c’est en théorie, car même un caractère tres deformé peut etre reconnu par un robot performant.
    Un simple Captcha avec de gros caracteres non deformés déroutera 99% des robots, car pour la plupart ils ne rechercheront pas à interpréter l’image, mais juste à valider le formulaire en ligne… C’est peut etre l’equilibre à rechercher.

    J’ai testé plusieurs générateur de captchas, Cryptographp.com est le meilleur pour ma part, les autres ne sont généralement pas sécurisés et il est souvent facile de les contourner, et ca un robot sais le faire facilement !

    Pierre

    Reply
  4. Citizen K says:

    @Pierre: D’une part, visibilité et contraste ne sont pas tout. Il suffit de penser d’une part aux mal-voyants et aveugles, ou aux personnes ayant des difficultés motrices. Il n’y a d’ailleurs pas que les handicapés: une personne âgée atteinte d’artrose devra également fournir un effort supplémentaire pour remplir le formulaire CAPTCHA. Le fournira-t-elle ou sera-t-elle un utilisateur perdu pour votre site?

    D’autre part, je ne veux pas démoniser les CAPTCHA (même si personnellement je n’aime pas trop cette solution). Dans certains cas, ils représentent la solution la plus adaptée, dans d’autres non. Il tient à nous, lors de la conception d’un site, d’évaluer précisément jusqu’à quel point on désire ou on doit le rendre accessible, et à quel public.

    Mais je vois souvent les CAPTCHA employés comme une solution-miracle (qui est loin d’exister à ce jour) contre le spam et les abus, et je tenais à attirer l’attention sur l’aspect particulier de l’accessibilité, auquel on ne pense pas toujours.

    @sam: Bad Behaviour marche plutôt bien dans mon experience, mais souffre du problème habituel des rapports predateur/proie: une course aux armements sans fin. Les spammeurs contournent au bout d’un certain temps certaines protections, puis l’auteur (les auteurs?) remet le logiciel à jour. Un système efficace mais qui demande des vérifications et mises à jour régulières, donc.

    Un système centralisé tel qu’Akismet (ou les filtres anti-spam de GMail à travers lesquels on peut faire passer son mail, p.ex.) peut rapidement être mis à jour par les “marquages” de tous les utilisateurs, une sorte de filtre bayésien collectif en somme. Mais s’il tombe en panne, comme cela est arrivé il ya quelque temps dans le cas d’Akismet, on se retrouve avec… uhm… certaines parties de notre anatomie découvertes dans un courant d’air glacial, si tu me pardonnes l’expression.

    Une utilisation couplée Bad Behaviour/Akismet, par exemple, permet de cumuler les avantages des deux systèmes en en atténuant quelque peu les défauts. Cela peut être désirable si le site que tu cherches à protéger est très traffiqué. Un peu comme une multithérapie peut se révéler plus efficace contre certains virus…

    Oui, je sais, comparer spammeurs, trolls et vandales à des virus ou des bactéries est profondément insultant pour les virus et les bactéries, navré.

    Reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>