Techniques anti spam

jeudi 09 août 2012 à 23:47

Assurément l'une des pire plaie du web, je considére le spam comme un déchet, au même titre que ceux qui traine dans la rue. Il faut les traiter, mais convenablement. J'en ai déjà parlé : même sur mon petit blog, j'ai des problèmes avec les spammeurs… Afin de les éviter, il est important de comprendre ce qu'ils veulent. À la recherche d'une solution propre contre ce fléau, j'ai décidé de mener mon enquète.

Actuellement, sur ce site, il y a 3 techniques anti-spam. Tout d'abord un captcha, très simple et qui ne bloc pas grand chose. C'est un choix car je refuse les de mettre des captchas illisibles. Ensuite, les liens des commentaires sont brouillés ce qui coupe l'herbe sous le pieds a pas mal de spammeurs. Enfin, la méthode la plus sale que je souhaite retirer : les visiteurs qui ne sont pas localisé en France ne peuvent pas poster.

Mais que cherchent réellement les spammeurs ? Voici une question qui, si on y répond, permet d'éviter pas mal de problèmes. Il y a deux catégories de spams : ceux que vous recevez dans vos boîtes mail et ceux qui poluent les blogs en tout genre. Les premiers cherchent les clics de visiteurs, mais les seconds sont bien différents. Si vous avez quelques notions de référencement, vous savez ce qu'est un backlink. Ce sont les liens externes qui permettent aux moteurs de recherche comme Google de donner une importance aux sites. C'est la principale raison d'être des spams sur les blogs.

Donc, l'une des solutions pour éviter les spams sur vos blogs est de brouiller les liens dans les commentaires. Malgrès tout, même si le lien est brouillé, la simple présence d'une URL dans un texte suffis à Google… La pondération est plus légère qu'avec un vrai lien, mais ça apporte quand même un peu de poids à la page cible. J'ai déjà mis en place cette méthode, mais malgrès tout, le spam continue…

La solution suivante est de mettre un captcha. Là, il y a deux écoles : un captcha simple qui ne contraint pas le vrai visiteur ou un captcha très complexe qui oblige les visiteurs à passer deux minutes à savoir si c'est un «a» ou un «o»… Si vous regarder en bas de page, vous verez tout de suite l'école que je suis…

L'état des lieux est fait, maintenant, je vais vous présenter les solutions que je compte mettre en place prochainement. Je vous rassure : je ne suis pas fou… expliquer comment je me protège ne fait finalement gagner que 10 minutes aux personnes qui veulent attaquer. Le but n'est pas de cacher mes défenses mais bien de les rendre suffisament solide pour contrer les spammeurs.

La première de ces nouvelles protections (et je me veux de ne pas y avoir penser avant), c'est de vérifier que la requête qui veux poster un commentaire proviens de la bonne page. En effet, la plupart des bots ne prennent même pas la peine de passer sur la page ou d'envoyer ce genre d'informations.

La protection suivante, c'est de générer un fichier CSS ou JS vide qui va créer un cookie chez le client. Meme si le bot charge la page pour envoyer le commentaire, il est rare qu'ils soient muni d'une interface qui charge l'ensemble de la page : c'est une perte de temps et le temps d'un bot est précieux.

Dans le même genre, il y a la possibilité de générer aléatoirement les noms des champs à renvoyer. Ça rajoutte encore pas mal de complexité… Allez deviner que le champ «odluitr» est celui où il faut mettre le commentaire ou si c'est pour l'adresse mail ? Ce n'est pas la protection ultime car il suffis de parser la page convenablement pour la contrer, mais ça met du piment.

Une autre solution est l'anti-captcha… Vous mettez un vrai captcha et un champ de texte à coté, en CSS, vous les rendez invisibles et si vous récupérez du texte dedans, c'est que le bot à correctement fait son boulot : il a rempli tous les champs, y compris celui qu'il ne fallait pas. C'est une logique par l'absurde et il suffis d'un petit réglage pour passer outre, mais ça me fait tellement rire que je vais le faire pour voir combien vont tomber dedans.

Enfin, la protection la plus puissante que je vais mettre en place, c'est Akismet. Il s'agit d'une base de donnée de spams qui joue sur l'IP du visiteur, son adresse mail, le contenu du commentaire afin de déterminer la probabilité qu'il s'agisse d'un spammeur. Malheureusement, après quelques tests, je suis obligé de rajouter une validation manuelle après ce test.

Voila, j'espère qu'avec toutes ces protections les spammeurs vont cesser de m'importuner…

Pour la petite histoire, je vais vous raconter à quel point les captcha sont des protections innutiles. Je travaillais sur un site de bonne taille, et nous recevions des spams dans nos commentaires. Nous avons mis en place un captcha plus complexe afin de tromper l'algo du bot, mais les spams n'ont pas cessé, même pas une heure. Nous avons mis en place toutes les protections possibles mais rien n'y faisait, toujours plus de spams. Puis, nous avons analysé comment c'était possible… La solution était tellement simple qu'il a fallu du temps pour comprendre : il n'y avait pas de bot.

Le script venait sur le site, copiait l'image, l'affichait sur un autre site qui proposait du téléchargement protégé par captcha. Le visiteur du site de téléchargement saisissait le captcha qui était ensuite transmis à notre site… Voila comment on casse les captcha les plus complexes : avec un humain derrière un écran.

Laissez un commentaire

captcha

En bref...

Dernier article

La dictature sur facebook

Cette semaine, l'actu, c'est Facebook qui trébuche. Le réseau social vient en effet de supprimer le droit de vote de ses membres. On a aussi GoogleNow sur Chrome, des nouvelles pas très réjouissantes de l'UIT, du piratage, l'étoile de la mort de Star Wars et une évasion échoué.

Ressources externes