WordPress et les captcha

Ce blog qui était épargné jusqu’ici a apparemment été récemment découvert par une machine à spam. Un bot s’entête en effet depuis quelques jours à me dire que mon bref article sur les interfaces du futur est génial, que c’est une bonne idée, qu’il devrait essayer, et autres compliments vides de sens, en anglais évidemment. Avec deux ou trois tentatives quotidiennes, ça reste néanmoins limité, sans commune mesure avec les centaines que des blogs plus importants subissent. Mais en grand fainéant cela suffit à me fatiguer au point de chercher une solution.

Celle qui me vient à l’esprit en premier est l’utilisation d’un captcha. Non pas une image d’un texte vu à travers un fond de bouteille de vodka préalablement vidée, mais juste une question absolument triviale, dont l’effet à déjà fait ses preuves à mes yeux. J’avais en effet déjà implémenté une telle fonction sur le forum de l’ancien site de Prologin avec la question « Combien font deux et deux ? », à laquelle il était possible de répondre en chiffres ou en lettres (ainsi que « 42 », à la demande de quelques candidats). Ce bout de code s’était révélé autrement plus efficace que le module Akismet, à l’effet très discutable, puisque l’on n’avait plus jamais eu le moindre problème depuis lors.

Néanmoins, plutôt que d’aller faire rentrer ça à la hache et au marteau comme précédemment, je me suis dit que quelqu’un avait déjà dû le coder sous forme de module, et qu’une petite recherche serait le plus simple. À défaut de m’avoir encore permis de trouver exactement ce que je cherche, elle aura été très instructive.

Tout d’abord il est partout conseillé d’utiliser Akismet, mais ayant constaté son échec sur le forum de Prologin, c’est la première chose que j’ai désactivée en mettant ce blog en ligne. De plus, sur un site plus important, je ne serais pas surpris que le traitement impliqué ait un coût.

Viennent ensuite les captcha à base d’images brouillées. Cette solution me semble poser quatre gros inconvénients.
Exemple de captcha

  • Tout d’abord elle est pénible : ce type de système me gène en tant qu’utilisateur, et j’imagine que c’est le cas de beaucoup d’autres, même sans aller jusqu’à des extrêmes comme ce grand gagnant (j’ai testé aussi, et je vous recommande de le faire, c’est proprement hallucinant : l’inscription au forum de pompiers.fr). La raison en est simple : il s’agit de chiffres et lettres aléatoires, qui n’ont donc aucun sens, et nécessitent de ce fait une certaine concentration.
  • De plus ces images sont souvent difficilement lisibles, comme le résume très démonstrativement cet article.
  • Ensuite la méthode manque d’accessibilité. Accessibilité, ce n’est pas un mot à la mode à sortir quand on n’a plus d’argument contre des technos qui permettent de faire des sites kikoolol avec des trucs qui clignottent. J’ai un ami qui utilise un clavier braille pour aller sur Internet : pour lui, l’accessibilité, c’est ce qui sépare le net auquel il a accès du reste.
  • Enfin, cette solution s’avère finalement peu efficace face aux progrès de la reconnaissance de forme. En janvier une équipe russe publiait en effet avec fracas un article de recherche traitant de reconnaissance de captcha, et annonçait un taux de réussite de 35% sur les images générées à l’époque par le site Yahoo!, ce qui est amplement suffisant pour en ruiner l’effet. D’ailleurs, sans recourir à ces approches techniques, d’autres spammeurs font lire les images par des utilisateurs en les mettant sur des sites à fort trafic, comme par exemple des sites pornographiques.

Au cours de cette recherche, j’ai également vu passer une méthode à base de son. Cette approche me semble être encore pire que la précédente, aussi je ne vais pas m’étendre plus.

Afin de se débarrasser de la gène occasionnée, certains modules tels que WP Captcha-Free ou WP-SpamFree utilisent le Javascript ou les cookies pour automatiser la reconnaissance du type de visiteur. C’est un moindre mal, mais imposer ces fonctions me gène, toujours pour des raisons d’accessibilité.

Enfin on arrive au méthodes textuelles. Les méthodes dites mathématiques (« arithmétiques » corrigeront les plus rigoureux) semblent être les plus populaires, en témoignent les citations fréquentes de Math Comment Spam Protection Plugin par exemple. Les méthodes textuelles on l’avantage de ne plus poser le problème de l’accessibilité, du moins quand elles restent raisonnables. Le lien que j’ai déjà cité donne quelques exemples d’abus qui en plus d’être tristement risibles, sont parfaitement inefficaces. Reconnaître une expression dans un texte et en retourner le résultat est en effet du domaine du trivial, et demander de calculer la deuxième sur deux ne fait que réduire le taux de réussite d’un bot à 50%. Aussi pénible et peu efficace est remarquable.

À mon avis l’efficacité d’un simple texte pour un captcha réside dans l’analyse sémantique qu’elle nécessite. « Quel fruit pousse sur un pommier ? » est une question simple, ne demandant aucune réflexion, mais qui requiert un traitement du langage qui nous met à l’abri pour cinq à dix ans au moins. WP-Gatekeeper fait partie des modules reposant sur cette technique. N’en ayant pas encore trouvé d’autres de ce genre, mon choix n’est cependant pas encore arrêté. Toute suggestion est d’ailleurs bienvenue. :-)

Pour finir, voici un article en anglais où l’auteur semble avoir constaté lui aussi une grande efficacité pour un bout de code écrit rapidement.