Dans un élan de résistance vraisemblablement vain, j'ai ajouté un mécanisme de brouillage élémentaire du formulaire d'envoi de commentaire pour éviter le spam. Il est nécessaire pour cela d'avoir javascript d'activé. Si vous n'avez pas javascript activé dans votre navigateur et ne pouvez pas ou ne souhaitez pas l'activer, et ressentez malgré tout le besoin irrépressible de commenter, vous pouvez le faire par courrier, je l'inclurai de mon mieux ici.

C'est vrai après tout, pourquoi essayer des solutions efficaces qui existent déjà, quand on peut réinventer la roue hypertoroïdale dans son coin ?

Comment by Pierre-Louis Sat 24 Feb 2007 09:22:41 AM EST

Je ne vois pas à quelles solutions efficaces tu fais allusion.

Comment by Laurent Sat 24 Feb 2007 09:32:04 AM EST

Par exemple celle de Ploum, qui une fois implémentée dans mon forum en amont du reste, donne jusqu'à présent 100% de réussite. Mais bon, je n'ai qu'une petite dizaine de spams par jour sur ce forum, il est donc probable que je n'aie vu passer qu'une infime fraction de la faune de robots de spam.

J'avais pourtant l'impression d'avoir bien fait chier tout le monde avec ça. Et ça c'est sans compter les discussions privées qui vont avec.

Et je ne parle même pas des autres mesures transparentes que j'ai mises en place et qui filtrent bien aussi (mais qui supposent un accès à la conf' du serveur et/ou au code cgi).

Comment by Pierre-Louis Sun 25 Feb 2007 03:24:05 AM EST

Le coup du champ de formulaire bidon, je ne suis pas sûr que ça tienne très longtemps. Il suffit de très peu d'intelligence pour le contourner. Je pense que forcer le spammer à faire tourner javascript est plus contraignant, tout en étant presque transparent pour l'utilisateur (les geeks qui n'activent pas javascript sont en minorité).

Bannir des mots-clefs c'est hors de question, c'est le niveau 0 de la lutte.

Comment by Laurent Sun 25 Feb 2007 05:12:15 AM EST

C'est le champ de formulaire commenté qui donne 100% de réussite, à lui tout seul. Ce n'est pas une question d'intelligence, c'est une question de rentabilité. Tant que la majorité des formulaires y seront vulnérables, les robots ne changeront pas.

Parmi les autres idées de filtrage que j'ai eues, le temps de réponse (un humain ne remplit pas un champ en trois secondes), subtilement encodé dans un champ caché, jouer avec le referer (beaucoup viennent avec comme referer la page de formulaire, ce qui est plus-que-douteux quand c'est une IP que l'on a jamais vu avant), randomiser le nom des champs. Et si vraiment il faut laisser des gens au bord du chemin, on peut refuser ceux qui n'ont pas chargé un script js extérieur OU un style css OU une image avant de poster (ce qui a l'air de bien se faire avec mod_trigger_b4_dl).

D'un autre côté, ce qui est fait est fait, et ce sera toujours moins de travail qu'implémenter autre chose. Et puis, on peut trouver acceptable de laisser les sans-javascript sur le bord de chemin ; après tout il y en a bien qui trouvent acceptable de laisser les sans-InternetExplorer sur le bord du chemin.

Une autre idée géniale que j'ai eue, c'est de refuser l'accès mon site à tous ceux qui n'ont pas "Kazehakase" dans leur User Agent. Efficacité garantie, et sur mon site ça aura un impact négligeable sur le traffic. C'est juste une question de ce que l'on trouve acceptable ou pas.

Comment by Pierre-Louis Sun 25 Feb 2007 07:34:29 AM EST

L'observation de mes logs montre que les robots à spam ne vont pas voir le site peu de temps avant de tenter de commenter, qu'ils parallélisent en quelque sorte puisqu'ils bourrent le REFERER en y mettant plusieurs blogs ciblés en même temps (pour contrer la stratégie d'analyse du REFERER, justement). Je pourrais m'affranchir du javascript en vérifiant la présence d'un token temps-limité que j'ai aussi ajouté hier.

Comment by Laurent Sun 25 Feb 2007 07:43:03 AM EST