Si vous devez donner des adresses e-mail aux visiteurs des pages Web d'un site, comment les cacher aux robots de collecte d'adresses email (spam harvester) qui parcourent le Web pour piller ces mêmes adresses afin de les spammer, tout en permettant à vos visiteurs de vous contacter ?
En les cryptant !
En les cryptant grâce à un script inséré dans le flux html des pages du site. Les robots ne voient pas l'adresse email, mais les humains oui.
Le navigateur du visiteur doit accepter la technologie JavaScript, ce que tous les navigateurs font (sauf ceux qui datent de l'époque du père de Mathusalem).
Le visiteur ne doit pas avoir désactivé la technologie JavaScript, ni avoir bloqué les scripts (avec NoScript, par exemple) S'il l'a désactivée, il s'en aperçoit et peut la réactiver.
Qu'est-ce qui fait que les robots ne voient plus les adresses email cryptées ?
Les robots de moisonnage des adresses email (spam harvester) balayent automatiquement toutes les pages Web du monde et cherchent les signes extérieurs de présence d'une adresse e-mail. Deux signes les interpellent :
- Le signe " @ " que l'on trouve dans toutes les adresses email et qui signe le fait que le texte en amont et en aval de lui à beaucoup de chances d'être une adresse e-mail. Des vérifications sur la syntaxe permettent ensuite aux robots d'éliminer les erreurs dès la capture. Par exemple le suffixe doit se terminer par un TLD (Top Level Domain) comme .com, .org, .fr, .net, etc. ...
- Le protocole " mailto: " dans un lien. La présence de ce protocole signifie que ce qui suit est une adresse e-mail.
Table des matières
Crypter adresse email dans une page Web - Introduction
Plusieurs solutions, plus ou moins bonnes, existent pour empêcher les robots de capturer votre adresse e-mail alors que vous devez permettre à vos visiteurs de vous contacter.
Il y a la solution consistant à mettre un formulaire de contact sur le site, avec un script, côté serveur, ce que ne verront jamais les robots. Si vous ne souhaitez pas mettre un formulaire en ligne, ou si vous ne le pouvez pas (certains serveurs mutualisés, d'hébergement gratuit, désactivent toutes les fonctions d'envoi de courrier afin de protéger leurs serveurs des risques de saturation par envoie de spam, ou même, simplement, envoie de courriers de masse comme les lettres d'abonnement des visiteurs au site).
Il faut alors utiliser des outils ou services, locaux ou en ligne.
Ces outils ou services, en ligne ou hors ligne, vont traduire une adresse e-mail en un code html ou un script javascript que les robots de capture d'adresses (EmailSiphon, EmailWolf, ExtractorPro, Mozilla.*NEWT, Crescent, CherryPicker, [Ww]eb[Bb]andit, WebEMailExtrac.*, NICErsPRO, Telesoft, Zeus.*Webster, Microsoft.URL, Mozilla/3.Mozilla/2.01, Xenu.*Link.*Sleuth.*, EmailCollector...) ne détecteront pas toujours. Il vous reste à copier ce code et à le placer dans votre page, en remplacement (à l'emplacement) du "mailto:" habituel.
- Attention : ne jamais utiliser les services en ligne qui proposent de crypter votre adresse e-mail et de vous envoyer le code crypté par e-mail ! Il s'agit, avec 100% de certitude, de spammeurs qui mettent cet outil à disposition afin de collecter des adresses validées qu'ils ne pourront pas collecter avec leurs robots ! Soyez méfiants, tout le temps.
- Préférez les codages durs aux codages légers.
- Lorsque des .js et des fonctions javascripts sont proposés, changez leurs noms sinon les robots les reconnaissent et sont dotés des fonctions de décryptage (désobfuscation) adéquates.
- Notez que les codages légers, en html, fonctionnent partout mais sont faibles. Les codages dans un Javascript sont tributaires de l'activation de Javascript dans le navigateur du visiteur (ce qui est quasiment toujours le cas sinon rien ne fonctionnerait).
- D'autre part, nous avons écarté tous les services ou produits payants ainsi que les services qui prétendent ne fonctionner que sous Internet Explorer, ce qui est suspect d'ActiveX.
- Le piège dans lequel vous ne devez pas tomber : le script va coder l'adresse e-mail et faire apparaître un texte - ne donner pas votre adresse e-mail comme texte apparent ! Mettez, comme texte apparent, quelque chose comme "écrivez-moi ici " mais pas "écrivez-moi à existepas@nospam.com".
- Notez bien qu'aucune protection n'est absolue.
Quelles sont les solutions à notre portée pour cacher notre adresse e-mail ?
- Utiliser une image du signe "@" plutôt que le signe lui-même
C'est un codage extrêmement léger mais aisé à mettre en oeuvre. Il s'agit de remplacer le caractère "@" frappé au clavier par une image (un .gif ou .png par exemple) car il permet la transparence et préserve ainsi votre fond de page.
- Au lien d'insérer dans votre page un code habituel
zutauxspammeurs@fai.com
code html : <a title="M'écrire" href="mailto:zutauxspammeurs@fai.com">zutauxspammeurs@fai.com</a>
Utilisez plutôt ceci
zutauxspammeursfai.com Remplacez l'image du caractère arobase dans mon adresse
Code html : <a title="M'écrire - Remplacez l'image du caractère arobase dans mon adresse" href="mailto:zutauxspammeurs-fai.com">zutauxspammeurs<img src="../../m/img/arobase_09.gif" alt="" height="9" width="9" border="0">fai.com</a> Remplacez l'image du caractère arobase dans mon adresse
Evidemment, dans ce cas, l'outil de messagerie de votre visiteur va s'ouvrir normalement mais le caractère "@" se sera pas dans votre adresse e-mail et il faut le prévenir de l'ajouter en remplacement du caractère "-" qui s'y est mis automatiquement, à la place de l'image.
Voici quelques .gif en diverses tailles sur fond transparent (police Arial). Vous pouvez les recopier et changer le nom du fichier.
arobase_08.gif
arobase_09.gif
arobase_10.gif
arobase_11.gif
arobase_12.gif
Un robot collecteur d'adresses, même basique, va détecter la présence, non pas de l'arobase mais du protocole "mailto:" suivi d'une chaîne de caractères avec une image au millieu et remplacera à la volée cette image par "@".
- Utiliser un service de redirection
Une page en anglais sur le sujet
http://jamesthornton.com/software/redirect-mailto.html
Le principe consiste à appeler un service en lui passant 2 éléments : le login et le serveur de messagerie
Ecrire à Zutauxspammeurs
S'obtient avec ce code :
<a title="Ecrire à Zutauxspammeurs" href="http://jamesthornton.com/email/?u=zutauxspammeurs&d=fai.com">Ecrire à Zutauxspammeurs</a>
Ceci risque de divulguer et certifier votre adresse si le "service" que vous avez trouvé est proposé par un spammeur, ce que vous n'avez pas les moyens de reconnaître. D'autre part, ces services sont connus et répertoriés par les spammeurs dont les robots sont parfaitement à même d'analyser le code source html de l'url pour en extraire les 2 arguments
u=zutauxspammeurs
et
d=fai.com
Il n'y a aucune difficulté à les mettre bout à bout avec un "@" au milleu.
Le seul avantage, encore est-il mince, est que les spammeurs peuvent, s'ils sont dans la zone de juridiction de votre adresse e-mail, se méfier des internautes qui lutent contre le spam et ne pas collecter ce type d'adresses. Les spammeurs situés en Chine ou en Russie ou dans des zones paradisiaques et pas franche du tout, hors d'atteinte de toute juridiction, se fichent complètement de vos états d'âme : vous n'êtes qu'une proie et de l'argent qui rentre lorsqu'ils vendent votre adresse à des annonceurs publicitaires.
- Utiliser une image du signe "@" et un service de redirection simultanément
Par exemple : Ecrire à Zutauxspammeursfai.com
Combine les solutions 1 et 2 ci-dessus et donc combine les inconvénients des 2 solutions.
- Codage "léger" en ligne - produit du code html
Ces encodages, de type "échappement%" ou Unicode, sont très facilement déjoués automatiquement. Vous disposez d'ailleurs (et tout le monde dispose - dont les spammeurs) d'encodeurs et de décodeurs sur cette page d'Assiste.com.
Recommandation est faite de ne pas les utiliser. Ils vous sont signalés ici par mesure d'exhaustivité et car vous risquez de tomber dessus lors d'une recherche sur le Net et de les utiliser. Ces encodeurs ne cryptent pas, ils encodent de manière primitive en codage "échappement %" et la convertion en codage "utf8" est aisée.
Si vous disposez de php sur votre serveur, vous pouvez mettre cette fonction de "cryptage", très primaire, sur une page dont le suffixe sera .php et l'utiliser pour crypter "légèrement" vos adresses e-mail ainsi que proposer ce service à vos visiteurs (webmasters).
<?php
function hex_encode ($str)
{
$encoded = bin2hex($str);
$encoded = chunk_split($encoded, 2, '%');
$encoded = '%'.substr($encoded, 0, strlen($encoded) - 1);
return $encoded;
}
?>
Par exemple, avec le lien "mailto:zutauxspammeurs@fai.com" cela donne, selon les encodages :
- Codage "léger" en ligne - produit un Javascript
L'adresse est cryptée. Le script est auto décrypteur. Il n'y a rien d'autre à faire que de copier le script à l'emplacement où doit apparaître l'adresse. Il suffit d'exécuter le script pour décrypter l'adresse.
- Codage "léger" hors ligne (utilitaire à télécharger et à exécuter chez vous)
- Produit un encodage léger Unicode (ou Hex ou un mix des deux). Présente l'avantage d'être exécuté localement (sur votre machine plutôt que par un service distant).
Oelc - Obfusticated Email Link Creator
- Codage "moyen" en ligne
- Javascript autodécrypteur à insérer dans la page html
http://www.caspam.org/
- Javascript non autodécrypteur. L'adresse est cryptée. Nécessite d'éditer chaque page pour y copier un .js ou de faire une unique page de contact et de renvoyer vers cette page depuis toutes les autres. Il faut
- télécharger un .js et le mettre à la racine du site sur le serveur
- référencer le .js dans le header
- utiliser l'encodeur suivant pour crypter le lien mailto:
Conseil : changez le nom du .js car les robots le reconnaissent et utilisent le décryptage
http://www.cleanmymailbox.com/free.html
http://pascal.benito.free.fr/programmation/scrypt/
- Codage "dur" en ligne
- Crypter votre hyperlien mailto:
- Produits ou services à ne pas utiliser