Spamradrap

Par Fabrice Bonny, le 2 mars 2007, dans .

Le spam, ou pourriel, est devenu la plaie numéro 1 de l’internet : il concerne 4 courriels sur 5 dans le monde. Bien sûr, il existe de nombreux filtres efficaces mais la bande passante, l’énergie et le temps perdu à vérifier sont considérables et sont en progression constantes. Malgré tout, laisser à l’internaute la possibilité de nous écrire un e-mail est un gage de sérieux et de qualité et un excellent moyen de retour d’informations. Comment concilier visibilité et protection de nos adresses ?

Les robots de récupération d’adresses mail sont assez frustres et se basent sur une recherche simple : l’arobase. Il suffirait donc de cacher le fameux @ pour tromper ces chapardeurs discourtois. Une technique simple consisite à encoder ce caractère en le transformant en une entité de la forme « @ » dans le code HTML. Une adresse mail sous la forme « toto@example.com » en HTML donnerait donc « toto@example.com » dans un navigateur. Notez qu’il est aussi possible de l’écrire sous la forme hexadécimale « toto%40example.com » mais sans pouvoir l’afficher correctement.

Voici donc une solution à la fois accessible, puisqu’elle fonctionne sur quasiment tous les navigateurs à l’exception de très anciennes versions, et suffisamment complexe pour leurrer les aspirateurs malveillants. Insérer le code suivant :
<a href=”mailto:toto%40example.com”>toto&#64;example.com</a>
pour avoir le résultat toto@example.com. Regardez au passage l’affichage dans votre barre d’état lorsque vous survolez ce lien.

L’exemple donné fait volontairement apparaître l’adresse sur la page pour une raison simple : se retrouver avec un morceau de papier sur lequel il est écrit « contact » ou « nous écrire » n’est pas un exemple de bonne pratique. Avouez qu’l serait dommage de rater un courriel parce que le visiteur a imprimé la page, non ?

S’l y a bien d’autres possibilités, celle-ci semble allier résultat et accessibilité, contrairement aux solutions à base de Javascript. Il serait également possible d’encoder certains caractères de manière aléatoire. Et vous comment faites-vous ?

30 commentaire(s)

  1. Par Robi, le 2 mars 2007 à 18 h 06 min :

    Excellent, je ne connaissais pas cette technique et c’est un réel problème qui pourrait être résolu !

    Néanmoins, je me pose une question: si les robots de récupération d’adresses mail sont capables de rechercher l’arobase (@)dans les pages, ne crois-tu pas qu’ils seront capables de chercher les %40 et &#64; ?

  2. Par Denis, le 2 mars 2007 à 18 h 15 min :

    Référer l’adresse en mailto: est une cible en soi. Si je codais un aspirateur d’adresses qui ne cherche que les mailto: je lui ajouterais une petite expression régulière pour remplacer tout ce qui n’est pas alphanumérique par un @ ou pour détecter les caractère de remplaacement… le plus simple n’estst-il paas d’avoir un bon anti-spam ?

  3. Par Elie, le 2 mars 2007 à 19 h 24 min :

    Personnellement, je n’aime pas beaucoup les mailto, qui ouvrent un logiciel de courrier, ce qui a le don de déstabiliser certains utilisateurs. Je pense que l’on peut faire cette manipulation sans pour autant mettre en place de mailto, qui sont il est vrai des cibles de choix….

  4. Par Tom, le 2 mars 2007 à 21 h 20 min :

    Bonne question. Personnellement je veille à ne jamais diffuser mon email en clair sur les sites Web mais c’est une protection bien fragile : rien qu’en envoyant un email via un client de messagerie à 1 personne avec une adresse vierge, le spam afflue quelques jours plus tard (merci les PC infectés en face …).

    J’utilise un bon vieux formulaire de contact interfacé avec une base de données ou quand je tiens vraiment à faire connaitre publiquement mon email, je laisse des indications claires pour que le visiteur la compose sans se tromper.
    C’est vraiment un des rares points sur lesquels je trouve que l’accessibilité se transforme en une contrainte.

    Après il faut savoir que les robots spammeurs arrivent à valider des formulaires de contact (sic) et écrivent à des emails de façons aléatoire (bob@domaine.com, security@domaine.com etc.).

    Honnêtement, l’encodage des caractères, c’est une question de temps (si ce n’est pas déjà fait) avant que cela soit interprété comme un @ par les robots. Je suis même à peu près persuadé que des contournements du style "bob at domaine dot com" ou "roger (a) truc.com" sont interprétés comme il faut par les robots.

    Le SPAM c’est une véritable saleté -_-

  5. Par Fabrice Bonny, le 2 mars 2007 à 22 h 44 min :

    Robi et Denis : je suis tout à fait d’accord sur le fait que cette protection paraît bien fragile étant donné la facilité avec laquelle on peut la contourner. Et pourtant, elle suffit à se débarasser d’une bonne partie des robots qui se contente de récupérer les adresses sans le moindre traitement. Les méthodes de récupération évolueront forcément lorsqu’une proportion importante de sites mettront en place une parade du type de celle décrite dans ce billet.

  6. Par David, biologeek, le 2 mars 2007 à 23 h 00 min :

    J’utilise cette fonction qui combine les encodages : http://www.biologeek.com/contact...
    Et depuis quelques années ça marche plutôt pas mal. Maintenant il y a tellement de sources de spam qu’il est difficile de savoir d’où ils proviennent…

  7. Par Groumphy, le 3 mars 2007 à 8 h 58 min :

    Hello,

    Je trouve l’article très intéressant, mais j’approuve les réponses de Robi, Denis et Tom sans oublier la méthode de David.

    Mais toutefois, je reste un partisan du Captcha intelligent (une sorte de test de Turing ?).

    J’avais fait un petit article sur mon ancien blog : users.skynet.be/digital-n… ainsi que donné une petite explication sur les Captcha intelligent (en javascript mais totalement réalisable en PHP ou autre…) : users.skynet.be/digital-n… !

    Bien entendu, il faut rendre à César ce qui lui appartient, mettre en oeuvre un Captcha n’est pas encore à portée de tous (sans oublier l’accessibilité si la solution choisie est en javascript).

    La solution la plus évidente est malheureusement encore et toujours le formulaire couplé au Captcha.

    Qu’en pensez-vous ?

  8. Par Tom, le 3 mars 2007 à 11 h 54 min :

    Si envoi avec formulaire il y a, plutôt que mettre un Captcha, autant utiliser le service Akismet (http://www.akismet.com) qui est très pertinent. Je le trouve en tous cas bien pratique.

  9. Par Robi, le 3 mars 2007 à 14 h 56 min :

    @ Tom : ca existe dans d’autres langues que l’anglais ? Parceque si tu fais un francais, tu peux pas te permettre de mettee des question en anglais, que certains ne comprendront pas

    @ Fabrice : en fait il suffirait de faire une page liée à site référencé surlquelle on mettrait des adesses email de manières différentes (normale, avec %40, &#64;, avec et sans mailto:, avec les méthodes David & Groumpy, etc) mais avec à chquae fois una dresse mail différente (1, 2, 3, 4, etc) et voir après quelques semaines (ou mois) laquelle a recu le moins de mail. Et à tu veras le meilleur filte. Ca tente quelqu’un de le faire ? 🙂

  10. Par Fabrice Bonny, le 3 mars 2007 à 18 h 12 min :

    L’idée de base était de trouver une méthode pour permettre de laisser une adresse sur un site internet, le formulaire avec captcha n’y répond pas vraiment, surtout sur papier. 😀 Par contre, dans le cadre de la lutte contre le spam de commentaires sur un blog, il prend tout son sens.

    Robi : l’idée de référencer des adresses avec des méthodes différentes est déjà en cours de réalisation. 😉

  11. Par Sébastien Delorme, le 3 mars 2007 à 18 h 45 min :

    "l’idée de référencer des adresses avec des méthodes différentes est déjà en cours de réalisation. ;-)"

    Arf, je venais de terminer une page de test. Tant pis, j’attendrais vos résultats 😉

    Sébastien.

  12. Par Ludovic, le 3 mars 2007 à 20 h 25 min :

    Si le but se cantonne à "l’affichage" de mail, dans ce cas avec un petit script côté serveur remplacant toutes les adresses à la volée par leur équivalent en image ça doit le faire et mettre un lien sur cette image pointant vers un formulaire de contact. Mais comme je l’ai écris dans un billet(http://www.lbcd78.fr/2007/01/05/... j’ai bien peur qu’on ne s’oriente à terme vers des messageries payantes

  13. Par Fabrice Bonny, le 3 mars 2007 à 22 h 42 min :

    Ludovic : quand je parle d’accessibilité et d’impression, il ne faut pas réfléchir en termes visuels. Une imprimante, c’est aussi un appareil qui inscrit des points en braille sur une feuille et qui ne saura pas retranscrire une image.

    En ce qui concerne le couperet de la messagerie payante, il suffit de voir combien les tarifs postaux empêchent l’envoi en masse de publicités dans nos boîtes à lettres. 😉

  14. Par Robi, le 3 mars 2007 à 22 h 59 min :

    @ Sébastien : fais le quand même aussi, c’est mieux d’avoir deux sources pour comparer les résultats !!!

  15. Par Groumphy, le 4 mars 2007 à 7 h 21 min :

    @ Fabrice > Dans ce cas, j’avais mal compris le but louable de cet article !
    Dans un cas similaire, pourquoi ne pas alors utiliser la propriété "content" sur une pseudo-élément "after" (pour l’affichage et on maintiendrais alors "un codage primaire" en language PHP pour éviter le spamming) ?

    Comme nous le savons tous, les robots spammeurs ne respectent pas le fichier Robots.txt et doivent certainement lire les fichiers CSS. Ce qui implique qu’on doit se montrer un peu plus malin qu’eux : enchainer une série de "span" (j’ai pas dit spam 🙂 ) afin d’afficher l’adresse complète.

    La CSS contiendra par exemple 3 séries de pseudo-élements (une pour le début de l’adresse, la seconde pour le millieu et la troisième en fin).

    Reste encore et évidemment le problème d’IE.

    @ Ludovic > Malheureusement la remarque de Fabrice est totalement réelle… Et de plus de très nombreux robots spammeur peuvent lire ce type d’image ! Donc totalement inutile !

  16. Par Sébastien Delorme, le 4 mars 2007 à 8 h 13 min :

    Bonjour bonjour,

    Voilà je viens de faire une page de test sur Tentatives Accessibles, comme le dit Robi il peut être intéressant d’avoir plusieurs sources de résultats.
    tentatives-accessibles.eu…

    Le but étant d’afficher une adresse email sous un format accessible (j’ai donc zappé les solutions images, captcha, …). Résultats dans un mois.

    Sébastien

  17. Par Robi, le 4 mars 2007 à 13 h 08 min :

    @ Sebastien : Cool n j’ai hate d’avoir les résultats …

    Heu sans vouloir abuser, tu voudrais pas tester des trucs du style:
    – test9 (at) site (point) com
    – test10 at site.com

    C’est juste parceque je suis surieux de voir si des rabots sont déjà programmé pour avoir ce genre d’adresse 😉

  18. Par Sébastien DELORME, le 4 mars 2007 à 13 h 52 min :

    @Robi: Voilà c’est fait. Je ne pense pas que les robots soient capables de décrire ce genre de chose, d’autant plus que l’on peut écrire "(point) com" dans différentes langues, avec ou sans parenthèses…

    Les robots récupèrent surtout les adresses emails présentes après "mailto". Mais testons quand même.

    Sébastien

  19. Par Matt, le 19 mars 2007 à 13 h 25 min :

    Merci pour la solution. Se taper 50 mails par jour de spam c’est dur… Mais je sais qu’il y a pire !

  20. Par Marumii, le 23 mai 2007 à 14 h 33 min :

    Excellent titre! Merci.

  21. Par Mikiman, le 6 juin 2007 à 19 h 51 min :

    C’est vrai que le spam devient de plus en plus présent.
    Personnellement j’utilise la plupart du temps les formulaires avec un captcha, pour les liens mailto c’est assez difficile de les crypter vu que le résultat doit être le même au final.

    Les antispams chez les hébergeurs reste à mon avis la meilleure solution

  22. Par Kit graphique, le 6 juin 2007 à 19 h 53 min :

    Merci pour cet article, je cherchais une solution efficace et à la fois accessible.

  23. Par Thibo, le 23 juillet 2007 à 15 h 01 min :

    Que pensez-vous de l’utilisation d’une image pour afficher l’email en claire ? Elle est clairement affichée mais bien illisible par les robots, non ?

  24. Par Web-Actualité, le 7 août 2007 à 18 h 51 min :

    S’il y a des parasites dans l’image en question comme les Captcha et que l’adresse email n’est pas dans le code source je pense que sa devrait éviter tout spam.

    Le mieux encore reste les formulaire de contact en PHP reste à mon avis le meilleurs moyens, aucun mail – si on a un captcha pas de risque de spam.

  25. Par lesannuaires, le 28 août 2007 à 21 h 42 min :

    Oui, la meilleure solution anti-spam qui fonctionne à tous les coups est d’afficher l’email sur une petite image. Facile à réaliser avec le module graphique de Php. Il faudrait tester si les robots collecteurs d’emails ont prévu de décoder les images pour y trouver des emails comme ils le font avec les captchas .. Prévoir éventuellement des caratères déformés …

  26. Par rencontre, le 30 juin 2008 à 4 h 15 min :

    Le spam est une horreur. Comme vous l’avez précisé il faut laisser à l’utilisateur la possibilité de nous contacter en cas de problème, de question, ou de remerciements 🙂
    J’ai testé la manière forte avec un codage entier en javascript de l’adresse et du l’anchortext vers le mailto mais les robots ont quand même réussi à trouver mon adresse email. Je recevais environ 30 spams par jour de viagra, elargissement, montres, et autres phishing.
    Ce soir j’ai décidé qu’il fallait que ça change :
    1/ changement d’adresse email
    2/ mise en place d’un formulaire utilisable une fois connecté et avec une valeur max d’envois d’email par personne et par jour.
    L’utilisateur ne voit pas mon adresse email sauf si je lui répond et au moins il n’a pas besoin d’un client de messagerie installé sur son pc (c’est le cas de beaucoup d’utilisateurs de webmail…) donc au niveau accessibilité je pense que c’est mieux.

  27. Par rencontre, le 15 juillet 2008 à 14 h 47 min :

    De plus, le soucis rencontré avec le spam est à double tranchant puisque sont parfois considérés en spam de simples newsletter envoyées à des abonnés. L’amalgame est handicapant pour ceux qui eux ne spamment pas.

  28. Par lucie, le 5 décembre 2008 à 16 h 47 min :

    Gmail fonctionne pas mal effectivement

  29. Par Oncle Tom, le 17 août 2009 à 16 h 41 min :

    Les 2 derniers commentaires cachent de vilains liens. Les chats attirent les webcams sexy 😉

  30. Par Élie Sloïm, le 17 août 2009 à 16 h 50 min :

    @Oncle tom : flingués, merci 😉

Les commentaires sont fermés.