Cet article fait suite à l'article Anti-bot façon PS2

Les bots savent faire de la reconnaissance de caractère (du moins certains en sont capables), mais comprendre ce qu'ils décryptent devient tout de suite plus complexe. Et oui, l'une des grandes lacunes actuelles d'un anti-bot est d'encoder une information simple à comprendre pour l'utilisateur mais du coup également simple à décoder pour le bot, car l'information codée est celle qui est attendue comme bonne réponse une fois décodée[1].

Supposons un instant que nous soyons Julien et que le jeu soit notre site à protéger (donc notre anti-bot), et que le premier candidat soit le visiteur de notre site et le deuxième un bot voulant forcer notre site... Ce jeu tel qu'il est globalement vu par un anti-bot actuel est très simple dans le sens où on demande de reconnaître des formes (caractères alphanumériques le plus souvent) dans une image et de dire ce qu'on a vu, or un enfant apprenant à lire en est déjà capable, pourtant nos anti-bots ne sont pas prévus pour des enfants que je sache ?? Alors si nous sommes entre adultes, sans exiger le niveau culturel des Lauréats de Julien, pourquoi ne pas complexifier un tant soit peu l'exercice en posant une vraie question et en attendant une vraie réponse qui elle ne se trouverait pas visuellement sur le site (par visiblement j'entends en format texte sélectionnable) ?

Vous commencez à voir où je veux en venir ? A cerner l'idée que j'ai derrière la tête ? Cette idée serait donc de ne pas crypter/coder la réponse attendue mais plutôt la question amenant à la réponse, et là je pense que l'IA à développer pour le bot va commencer à être plus hard....

Pour les questions il faut bien penser à rester simple afin de permettre à la totalité de vos visiteurs de répondre juste sans perdre de temps, ils sont là pour s'inscrire ou autres pas pour faire un jeu... De plus je pense qu'il faut quand même générer une image contenant la question histoire de bloquer d'entrée les bots non équipés d'un OCR. Ensuite il faut éviter les formules mathématiques en guise de question, premièrement parce que ça n'amuse personne de faire du calcul mental (pffffffff), et deuxièmement rien de plus facile pour un bot que de résoudre une formule :-)

Les questions pourraient être faites de deux composantes afin de dérouter encore plus le bot. Je m'explique. Plutôt que de poser une question du genre : "Dans quelle ville se trouve la tour Eiffel ?" (Attention : certains américains seraient tentés de répondre Las Vegas lol) il vaut mieux préférer une question pouvant avoir différentes réponses en fonction d'un deuxième critère. Comme par exemple : "Quelle est la couleur de ce texte ?" avec un texte en rouge ou en bleu ou en ... etc. On peut imaginer des tas de questions combinées sur ce principe...
Et du coup il faudrait mettre en place un tableau à multiples dimensions avec une liste de questions et pour chaque question une liste de réponses possibles, de plus pour continuer de compliquer le tout, certains des critères pourraient être utilisés tout le temps même si la question ne porte pas dessus, par exemple la couleur du texte.
Dans une question du genre : "EST-CE QUE LES LETTRES DE CETTE PHRASE SONT TOUTES EN MINUSCULES ?" la couleur du texte n'a pas d'importance, alors autant le mettre en rouge ou en bleu, et vice versa : pour la question sur la couleur autant mettre toutes les lettres en majuscules ou en minuscules... ceci ne fera que compliquer la tâche du bot en l'empêchant au maximum de se donner des repères pour travailler.

Avant d'aller plus loin je vous propose comme d'hab une petite image pour illustrer... ;-)

Serait-il possible de compliquer encore les choses ??? Et bien moi je dis oui, car je me doute bien que certains d'entre vous se dépêchent de finir de lire ces lignes avant de taper un commentaire du genre : "heu c'est bien ton truc, mais les questions on peut pas en faire un million et il serait facile d'éduquer un bot à les reconnaître en tant qu'image ou phrase (après décodage) et donc de comprendre la question afin de tenter d'y répondre...".
Bon, même si pour des raisons évidentes de complexité de programmation d'un tel bot, vis à vis de l'intérêt de leur existence, et l'utilisation du double voire triple critère plus l'obligation d'utiliser un OCR on n'est pas prêt de les voir forcer nos formulaires avec ce système, je vous propose donc en plus la mise en place d'un genre de pipotron sur les questions... forcément ça devient plus chaud à programmer car contrairement à la majorité des pipotrons il faudra pour nous 100% de phrases (ou plutôt questions) compréhensibles.
Mais avouez que du coup ça sera beaucoup plus dur de développer puis d'éduquer un bot à contrer notre anti-bot façon Julien Lepers ;-)

Encore une petite chose, il faut naturellement penser au fait que parfois plusieurs choix sont possibles... à cause d'une éventuelle faute d'orthographe ou de frappe... il faudrait donc prévoir plusieurs réponses possibles et égales, du genre : (oui,vrai) ; (non,faux) ; (trois,3) ; (rouge,roug,ruoge,vert) ....

Héhé j'en vois déjà qui sont surpris par la dernière liste ?!? et oui que vient faire le vert au milieu de tout ce rouge !?! Et bien en fait quand on sait que près de 8% de la population masculine est atteinte de dyschromatopsie (ou daltonisme) et bien il faut en tenir un peu compte...
Figurez-vous pour ceux qui ne le savent pas que c'est principalement/premièrement le rouge et le vert qui sont confondus par la majorité des personnes ayant ce petit défaut sur leur chromosome X. Mais bon là il s'agit plus d'accessibilité ce qui n'est pas le principal sujet de ce billet, pour plus de renseignement je vous renvoie sur cette page intéressante Blog Accessibilité:Dossier daltonisme.

PS : l'idée de départ du principe question-réponse pour un anti-bot vient encore une fois de mon ami GP, merci à toi, ça m'a une fois de plus inspiré ! ;-)

Notes

[1] Voir mon premier billet sur les images anti-bots