Anti-bot ??? vous savez, c'est cette petite image avec des lettres et/ou des chiffres tout bizarres, soit tordus, soit mouchetés, soit... bref le principe est simple, vous voyez une image et vous devez lire le texte que votre cerveau humain plus rapide et plus souple que n'importe quel processeur lit sans problème et le saisir dans un champ en dessous, ceci afin de valider votre formulaire... Le but ultime est pas de vous faire c... mais simplement d'empêcher la saisie automatique de robots (bots) et n'imaginez pas là que des robots bioniques ou autres sont derrière des écrans et devant un clavier et se baladent sur des sites, non !!! il s'agit bien entendu de logiciel avec une grande boucle do{}while(); qui va automatiquement valider une tonne de formulaires rarement dans un but très honorable...

Bon après cette lourde introduction je vous propose déjà quelques images de ce qu'on peut trouver dans le genre...
afin d'éviter tout problème de copyright ou autre je ne cite personne, si un auteur veut que j'enlève son image qu'il reconnaîtrai je le ferais aussitôt... mais comme les images sont générées automatiquement, plutôt dur de réclamer une réelle paternité, d'autant plus que je ne critique en rien ces images... Voilà quelques exemples :

La dernière, assez curieuse est faite par un Allemand et est basée sur le nombre de ligne d'une couleur (je crois) à saisir.... mais c'est un peu éloigner du propos ici, c'était juste pour en montrer l'originalité.

Voilà, à la vue de ces images vous savez tous ce dont je vous parle, maintenant pourquoi je vous dit tout ça... et bien figurez vous que malgré une protection du genre mon forum a été régulièrement attaqué par des bots qui réussissaient une à deux inscriptions par jour, et au bout d'une ou deux semaine ça commence à être très pénible... d'autant plus qu'ils réussissaient malgré cette protection anti-bot proposée en option par phpBB mais visiblement elle n'est pas fiable à 100% ! Il semblerait d'une part que certains bots assez évolué seraient équipé d'un OCR, et arriveraient donc à lire le texte contenu dans les images, et que d'autre part certains autres (voir les mêmes) connaissent les rouages de certaines des sécurités et savent les contourner ou les cracker rapidement, et ce sans s'occuper du contenu de l'image ! :-S

Bon je me suis donc mis à chercher un peu partout un projet libre naturellement me permettant de mettre en place un anti-bot plus évolué et surtout plus costaud face aux attaques des bots... et qu'elle ne fut pas ma déception de ne rien trouvé de très concluant... quelques projets solitaires à droite ou à gauche, mais rien de très concret ou de très sûr... alors je m suis dit, bon bah à mes heures perdus, pourquoi pas moi ???

Et voilà je m'y suis mis. Il y a deux mois environ j'ai commencé à y réfléchir en me fixant trois objectifs à atteindre :

  • fournir une classe PHP aussi simple que possible et accessible à tous, on la copie dans un répertoire, on lance un petit script d'install avec juste un bouton ok (éventuellement plus d'options pour les initiés) et 2 ou 3 lignes à inclure dans son propre code et c'est bon !
  • rendre l'image la moins lisible possible pour les bots et la plus lisible possible pour les humains que nous sommes
  • fournir une sécurité poussée par le principe de clé public/privée empêchant au maximum tout piratage ou craquage du code et ceci malgré le fait que les sources seront libres naturellement (d'où le besoin d'une installation pour personnaliser certaines choses par sécurité...)

Au delà de ces premiers objectifs je peux ajouter qu'aucune base de données ne sera nécessaire ou du moins obligatoire, et que un quatrième objectif pour plus tard sera de donner un maximum d'accessibilité surtout pour les non ou mal voyant... il faut alors penser à plusieurs choses et trouver des solutions, je vous ferait part de mes idées le moment venu... d'autres ont déjà proposé beaucoup de solutions sur le sujet (voix, changement de l'image...)

Bon ça fait plus d'un mois que je n'y ai pas touché mais à l'occasion je finirais deux ou trois petites choses et je sortirais une première bêta... Si certains d'entre vous serait intéressé pour tester ça sur leur site, et bien dites-le, ça ne pourra que m'encourager à reprendre plus rapidement le projet ;-)

Pour conclure ce premier billet sur le sujet je vous propose une petite image de ce que j'ai déjà fait :

La suite à suivre...