Cet article vous a plu?
2
Cet article vous a plu?
2

Protéger son adresse email : prévenir les spams

En France, le spam est interdit par la loi : « est interdite la prospection directe au moyen d'un automate d'appel, d'un télécopieur ou d'un courrier électronique utilisant, sous quelque forme que ce soit, les coordonnées d'une personne physique qui n'a pas exprimé son consentement préalable à recevoir des prospections directes par ce moyen. » (Loi n° 2004-575 du 21 juin 2004 pour la confiance dans l'économie numérique, article 22, alinéa 1er).

La divulgation de son adresse email est souvent indispensable, mais implique un certain risque d’une attaque de spams. Le spam n’est pas seulement embêtant, mais peut présenter un danger sérieux concernant la sécurité, notamment lorsqu’il s’agit d’emails de phishing. Ceci comporte également les programmes malveillants que les cybercriminels dissimulent dans les pièces jointes des emails. Toutefois, la nécessité rend créatif : il existe donc sur le Net plusieurs astuces, grâce auxquelles les opérateurs de sites Web peuvent limiter l’accès des spambots à leurs adresses email. Nous allons comparer ces différentes méthodes et présenter leurs avantages et inconvénients.

Collecte d’emails : comment les spambots guettent leurs proies

La collecte d’emails (email harvesting en anglais, qui signifie moissonner) est l’acquisition d’adresses email pour de la publicité déloyale, des attaques de phishing et la propagation de logiciels malveillants. Des programmes spécialisés, qui sont des robots moissonneurs d’emails, ou spambots, passent au peigne fin les sites Web, les listes de contact, les forums et les réseaux sociaux à la recherche d’adresses email. La syntaxe caractéristique des adresses email fournit des indices pour identifier les informations convoitées. Par exemples, les robots effectuent des recherches dans les textes sources avec le signe @. En effet, ce signe n’est généralement pas utilisé en tant que tel dans les textes, mais seulement pour séparer le nom de l’utilisateur du domaine dans les adresses email. Les descriptions offrent également une protection insuffisante. Les spambots sophistiqués incluent souvent d’autres orthographes, comme [at], [AT], (at) ou (AT) dans leur recherche :

utilisateur@domaine.fr

utilisateur[at]domaine.fr

Si le signe @ ou ses équivalents contiennent deux termes séparés par un point, c’est une indication claire qu’il s’agit bien d’une adresse email. La description du point caractéristique avant le top level domain offre également une protection faible, et réduit la lisibilité.

utilisateur[AT]domaine[POINT]fr

La référence email HTML est encore plus traitresse, comme dans l’exemple "mailto:utilisateur@domaine.fr". Ceci permet aux visiteurs d’un site Web d’ouvrir leur programme d’email préféré en un seul clic, et l’adresse du destinataire est automatiquement copiée dans le champ correspondant. C’est certes pratique, mais cela permet aussi aux spambots de comprendre clairement qu’il s’agit d’une adresse email prête à être capturée. Par conséquent, les opérateurs de sites Web essaient parfois de forcer les modèles classiques pour fournir des adresses email. Pourtant, il est important de maintenir une lisibilité optimale pour les internautes afin d’autoriser un accès sans obstacle aux adresses email.

Formule classique d’une adresse email sans protection

Il est important de comprendre comment une adresse email est intégrée à une page Web pour mieux se protéger des attaques automatiques de robots moissonneurs. Un dispositif simple et sans obstacle d’une adresse électronique peut par exemple être intégré dans une page en utilisant le code suivant:

<p> Pour toute information complémentaire, contactez-nous par email 
<a href="mailto:utilisateur@domaine.fr">utilisateur@domaine.fr</a>.
</p>

Lorsqu’un utilisateur visite un site Web avec ce code, le navigateur affiche les informations suivantes, notamment une référence mailto cliquable :

Pour toute information complémentaire, contactez-nous par email à : utilisateur@domaine.fr

Du point de vue de l’utilisateur, c’est la meilleure présentation d’adresse email sur le Net. Afin de préserver la convivialité de cette présentation pour l’utilisateur, les méthodes les plus populaires pour protéger son adresse email tendent à la rendre invisible dans le texte source, sans changer son apparence dans le navigateur. Il est également possible de séparer l’adresse email du site Web et de faire suivre la référence mailto grâce à un serveur. Toutefois, l’affichage de l’adresse email dans le navigateur est de moins en moins courant. Ceci s’explique par le manque de confort utilisateur de cette méthode, et son manque d’efficacité dans le cadre de la protection contre les spams.

Pour protéger son adresse email des spams, les méthodes efficaces consistent à la remplacer, la masquer ou l’encoder dans le texte source, ce qui entrave les spambots mais pas les utilisateurs.

Remplacer une adresse email

La stratégie de protection basée sur la substitution consiste à retirer l’adresse email du texte source et de la remplacer par une image ou un lien de redirection vers le mailto.

Intégrer une adresse email sous forme d’image

Lorsqu’une adresse email est insérée sous forme de visuel, elle reste lisible aux yeux des utilisateurs, mais est difficile à reconnaitre pour les robots. Il existe quelques spambots isolés pouvant analyser les éléments graphiques grâce à l’OCR (Optical Character Recognition en anglais), mais il s’agit d’une minorité. L’insertion d’informations de contact sous forme d’image procure par conséquent une haute protection contre les spams. Toutefois, les sites Web rencontrent des limites importantes dans ce domaine en ce qui concerne le confort utilisateur. Le code HTML suivant permet d’intégrer une adresse email en tant qu’image sur un site Web.

<img src="Pfad/grafikdatei.png" with="120" height="20" alt=" Pour toute information complémentaire, contactez-nous par email à : utilisateur@domaine.fr">

Pour les visiteurs du site Web, l’image s’affiche dans le navigateur de la manière suivante :

Cette présentation sous forme d’image est lisible pour la plupart des utilisateurs. Le texte ne peut toutefois être copié ou lié à une référence mailto. Si taper l’adresse manuellement est pénible pour la plupart des utilisateurs, les informations textuelles présentées sous forme graphique ne sont la plupart du temps pas accessibles pour les personnes souffrant de déficience visuelle. Il est donc préférable d’inclure une description de l’image sous forme d’alt-texte, car ces descriptions sont lisibles par les liseurs d’écran. En revanche, elles sont également faciles à déchiffrer pour les spambots : cette méthode seule n’est donc pas recommandée à titre de prévention contre les spams.

Lien HTML par redirection

Pour protéger son adresse email des moissonneurs, il peut être judicieux de la séparer du site Web. On utilise généralement un script, qui redirige les utilisateurs vers le lien du mailto lorsqu’ils cliquent dessus. Ceci permet d’ouvrir directement le programme email de l’utilisateur avec l’adresse email correspondante. Pour les spambots qui déchiffrent le code source d’un site Web, ce lien ressemble à un fichier, ce qui le protège d’une lecture automatique. Ce système de protection peut par exemple être mis en œuvre grâce à un lien vers un fichier PHP qui contient la redirection:

<p> Pour toute information complémentaire, contactez-nous par email à 
<a href="redirect-mailto.php">E-Mail</a>.
</p>

Le contenu du fichier redirect-mailto.php est un script qui redirige vers l’authentique lien mailto.

<?php
header("Location: mailto:utilisateur@domaine.fr"); 
?>

Puisque le PHP est traité du côté du serveur, les spambots qui lisent le code source des sites Web n’ont aucune chance d’accéder à l’adresse email. S’il est indispensable que l’adresse apparaisse visuellement sur le site Internet, il est recommandé de combiner cette méthode à celle de l’adresse intégrée sous forme de visuel. 

Cette technique présente un inconvénient, puisque l’utilisateur a besoin de passer par un intermédiaire pour accéder au mailto, et donc à l’adresse email. Dans la pratique, il s’agit en général de programmes email tels qu’Outlook ou Thunderbird. Dans les navigateurs récents, il est toutefois possible de définir comme intermédiaire des services email Web.

Masquer son adresse email

Si vous ne souhaitez pas remplacer complètement votre adresse email par une image ou un lien mailto, il existe des stratégies alternatives. Il est notamment possible d’encoder son adresse email, en intégrant des éléments supplémentaires ou d’abord en les compilant dans le navigateur à l’aide de JavaScript. Il est possible de créer un encodage simple notamment grâce à des entités HTML, ainsi qu’avec des encodages URL et HEX. Les stratégies pour masquer son adresse email reposent sur les fonctionnalités de commentaires, et les éléments HTML et CSS. Il existe également une solution plus complexe, qui consiste à masquer son email grâce à une composition dynamique de l’adresse.

Cette méthode signifie que les caractères sont simplement transcrits, c’est-à-dire qu’elle consiste uniquement à manipuler l’adresse dans le code source : ceci ne change pas la façon dont elle s’affiche dans le navigateur.

Masquer son adresse email en encodant les caractères

L’encodage habituel de caractères, utilisé pour masquer les adresses email dans le code source, est basé sur les entités HTML, le code HEX ou le pourcentage d’encodage URL. Ces descriptions ont d’abord été développées pour intégrer des caractères spéciaux parmi des caractères standards. Ce type d’encodage est adapté pour masquer les adresses email, puisque les caractères en question sont automatiquement transcrits dans le navigateur. Si les caractères de l’adresse email utilisateur@domaine.fr sont masqués par des entités HTML, ils sont d’abord écrits dans un style alternatif.

&commat; = @

&period; = . (point)

Ceci apparaitra ainsi dans le code source :

<p> Pour toute information complémentaire, contactez-nous par email à : 
<a href="mailto:utilisateur&commat;domaine&period;fr"> utilisateur&commat;domaine&period;fr</a>
</p>

Dans la mesure où les entités HTLM ont été définies uniquement pour les caractères spéciaux, ni l’adresse email entière ni la référence mailto ne peuvent être encodées. Une description avec l’encodage HEX est toutefois possible, avec le caractère Unicode correspondant, qui apparaitra ainsi :

&#numérocorrespondant;

En général, le numéro Hex de la lettre correspondante est précédé par un « x » minuscule. Par exemple, la lettre « m » s’écrit '&#x6d;' ou '&#109;' en décimal. L’adresse email utilisateur@domaine.fr incluant le lien mailto sera donc écrite de la façon suivante :

<p> Pour toute information complémentaire, contactez-nous par email à :
<a href=
"&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x75;&#x74;&#x69;&#x6C;&#x69
;&#x73;&#x61;&#x74;&#x65;&#x75;&#x72;&#x40;&#x64;&#x6f;&#x6d;&#x61;&#x69 
;&#x6e;&#x65;&#x2e;&#x66;&#x72;"
>E-Mail</a>.
</p>

Les chiffres correspondants pour traduire une adresse email sont disponibles facilement sur des listes en ligne. On trouve un récapitulatif clair sur htmlarrows.com. Si vous souhaitez encoder des adresses email complètes, il est recommandé d’utiliser des programmes d’encodage gratuits, disponibles via des applications Web ou sur de nombreux sites Internet.

Une autre façon de protéger son adresse email contre les spams est d’utiliser l’encodage URL. Cette méthode a d’abord été développée pour insérer dans une URL des caractères spéciaux interprétables dans le navigateur. Il s’agit de combinaisons de trois caractères, composées du symbole de pourcentage, et suivi du code hexadécimal ASCII du signe en question (formé par deux caractères). L’exemple suivant montre comment le caractère @ est masqué par cet encodage de l’URL :

<p> Pour toute information complémentaire, contactez-nous par email à :
<a href="mailto:utilisateur%40domaine.fr">E-Mail</a>.
</p>

En général, masquer son adresse email en encodant les caractères est facile et rapide, mais la protection est relativement faible par rapport à d’autres mesures, car de nombreux spambots sont aujourd’hui capables de déchiffrer des encodages simples.

Masquer son adresse email en ajoutant des caractères

En résumé, il est possible de masquer son adresse email en ajoutant des caractères superflus dans le code source. De cette façon, les programmes ne perçoivent pas l’adresse email comme un tout, et sont dans l’impossibilité de la lire automatiquement. Les commentaires HTML constituent une solution facile pour mettre en place ce type de protection.

<!-- commentaire -->

Dans l’idéal, seuls sont intégrés les caractères faisant normalement partie de l’adresse email.

<!-- abc@def -->

<!-- @abc.fr -->

Si les commentaires sont insérés de cette façon, les robots qui tentent de scanner le site Web ne seront pas en mesure de les lire :

<p> Pour toute information complémentaire, contactez-nous par email à :
utili<!-- abc@def -->sateur@domai<!-- @abc.de -->ne.fr. 
</p>

Dans le navigateur, en revanche, les commentaires HTML restent invisibles, ce qui ne brouille pas la lecture pour l’utilisateur.

Une solution alternative consiste à insérer n’importe quel caractère sans commentaire, tant qu’il est invisible dans le navigateur grâce au CSS. Dans l’exemple suivant, l’adresse email est entrecoupée par un élément span (espace). Le contenu du tag n’est pas pris en compte dans le navigateur parce que le champ de présentation (display) est nul (none).

<style type="text/css">
span.protectionspam {display:none;}
</style>

<p> Pour toute information complémentaire, contactez-nous par email à :
utilisateur<span
class="protectionspam">SUITEDECARACTERES</span>@domaine.fr. 
</p>

Si l’utilisateur reçoit la bonne adresse email dans son navigateur, le spambot va lire le texte mélangé dans l’élément span. Ceci permet aux opérateurs de sites Web d’utiliser l’adresse email utilisateur SUITEDECARACTERES@domaine.fr comme honeypot, afin de localiser les adresses des expéditeurs et de bloquer les attaques de spam.

L’inconvénient du masquage par ajout est que cette méthode ne permet pas de connecter l’adresse à un lien email HTML. Dans ce cas, les utilisateurs doivent copier manuellement l’adresse dans leur programme d’email.

Inverser une suite de caractères

On peut avoir recours aux CSS non seulement pour ajouter des caractères dans le code source, mais aussi pour inverser une suite de caractères. Ceci permet aux opérateurs Web d’enregistrer des adresses email dont le code source n’est pas dans le bon ordre, et de duper ainsi les spambots.

<style type="text/css">
span.ltrText {unicode-bidi: bidi-override; direction: rtl}
</style>
<p> Pour toute information complémentaire, contactez-nous par email à :
<span class="ltrText">rf.eniamod@ruetasilitu</span>.
</p>

Si les spambots peuvent trouver l’adresse rf.eniamod@ruetasilitu dans le code source, la propriété du CSS unicode-bidi (et la valeur bidi-override) permet que tous les caractères compris dans l’élément span soient lus dans le navigateur conformément au sens (direction) voulu : dans ce cas, de droite à gauche (rtl pour right to left).

Grâce à cette technique de masquage, les caractères ne sont pas disposés comme ils devraient l’être. Toutefois, les spambots les plus avancés sont capables de déceler ce piège.

Composition dynamique avec JavaScript

JavaScript offre une autre option pour s’assurer que l’adresse email est correctement écrite dans le navigateur. L’adresse est divisée en plusieurs parties, composées dynamiquement par le navigateur lorsque le site Web est ouvert.

<script type="text/javascript">
var part1 = "utilisateur";
var part2 = Math.pow(2,6);
var part3 = String.fromCharCode(part2);
var part4 = "domaine.fr"
var part5 = part1 + String.fromCharCode(part2) + part4;
document.write("Pour toute information complémentaire, contactez-nous par email à :
<href=" + "mai" + "lto" + ":" + part5 + ">" + part1 + part3 + part4 + "</a>.");
</script>

Les différentes sections de l’adresse email sont définies individuellement lignes 2 à 6. Le signe @ est défini en deux parties. Le Math.pow(2,6) au sein de part2 désigne le nombre du caractère dans la combinaison de caractères compatibles ASCII (26 = 64). Ceci est converti en caractère correspondant grâce à part3 et la fonction String.fromCharCode(part2). Le rôle des étapes définies en part1 et part5 est exécuté par les fonctions des lignes 7 et 8, document.write(). L’adresse email est seulement disponible une fois que le script s’exécute côté client. Il est aussi possible d’avoir une version où le script commence lorsque l’utilisateur a cliqué.

Les méthodes anti-spam basées sur des scripts en composition dynamique partent du principe que les moissonneurs d’emails ne peuvent pas totalement mettre en œuvre JavaScript. Si tel est le cas, le niveau de protection est élevé. L’inconvénient principal de cette méthode, c’est que les utilisateurs qui ont désactivé JavaScript dans leur navigateur ne reçoivent pas autant d’informations de contact qu’ils le devraient. Toutefois, ceci concerne de nos jours qu’une minorité d’utilisateurs.

Crypter son adresse email

JavaScript permet non seulement d’assembler des adresses email en plusieurs parties, mais aussi de crypter son adresse email pour la protéger des spams, grâce à un langage particulier. L’une des méthodes courantes pour le cryptage d’email est ROT13, qui peut être mis en œuvre avec juste quelques lignes des JavaScript.

<script type="text/javascript">
function decode(a) {
  return a.replace(/[a-zA-Z]/g, function(c){
    return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) 
                               ? c : c - 26);
  })
}; 
function openMailer(element) {
var y = decode("znvygb:hgvyvfngrhe@qbznvar.se");
element.setAttribute("href", y);
element.setAttribute("onclick", "");
element.firstChild.nodeValue = "Ouvrir programme email";
};
</script>
<a id="email" href=" " onclick='openMailer(this);'>E-Mail: cliquer ici</a>

Ce code montre, à la ligne 9, la version cryptée de l’adresse utilisateur@domaine.fr, comprenant la référence mailto (znvygb:hgvyvfngrhe@qbznvar.se), ainsi que les instructions pour le cryptage, lignes 2 à 7. Les fonctionnalités des lignes 8 à 13 permettent d’ouvrir le programme email favori de l’utilisateur, et d’inscrire l’adresse en clair dans les champs du destinataire.

Le script s’enclenche lorsque l’on clique sur le lien « E-Mail: cliquer ici » (lignes 15 et 16). Juste après, on a accès au texte « Ouvrir programme email » (ligne 12)

Tout comme la composition de l’adresse email basée sur JavaScript, cette méthode de cryptage est basée sur l’idée que les spambots ne peuvent pas interpréter totalement les scripts côté client. En principe, l’adresse email cryptée peut aussi être utilisée telle un honeypot. Dans ce cas, le domaine ne doit pas être crypté.

Les captchas

Les captchas offrent également la possibilité de protéger son adresse email des spams. Les adresses emails sont cryptées et affichées en clair seulement s’il est vérifié qu’il s’agit d’un utilisateur et non d’un robot. Ces vérifications peuvent prendre différentes formes, notamment demander au visiteur de recopier une combinaison de chiffres et des lettres. Il peut également s’agir de calculs faciles, de puzzles ou d’exercices de reconnaissance. Google propose un service de CAPTCHA gratuit avec reCAPTCHA.

Les captchas offrent, comparativement aux autres méthodes, un niveau de protection plus élevé contre les spams, dans la mesure où les adresses email ne sont pas affichées du tout, ou alors seulement sous forme cryptée dans le code source. Elles sont également faciles à intégrer dans le design d’un site Web. Toutefois, cette méthode requiert un effort certain pour parvenir à l’adresse email, et entrave largement le confort utilisateur, dans la mesure où l’information recherchée n’est pas accessible directement.

Une alternative : le formulaire de contact ?

Pour éviter de révéler votre adresse email sur un site Web, de nombreux opérateurs de sites Internet proposent de créer des formulaires de contact, dans lesquels les visiteurs peuvent entrer leur message, leur nom et leur adresse de contact. Ces formulaires sont intégrés sur un site Web grâce à un langage de programmation côté serveur, tel que PHP. Afin d’éviter que les spambots ne remplissent automatiquement ces formulaires, ils sont en général sécurisés par des captchas.

Conclusion

Les stratégies à utiliser pour protéger votre adresse email dépendent avant tout de vos exigences de présentation et des solutions techniques disponibles pour y arriver. Rediriger le lien mailto grâce à PHP ou un langage de programmation côté serveur équivalent constitue une bonne méthode de protection. Il faut toutefois que ceci soit pris en charge par le site hébergeur. Si vous décidez d’afficher votre adresse email sur votre site Web, il est recommandé de la présenter sous forme d’image.

La transcription et l’encodage grâce à des entités HTML, du code HEX ou de l’encodage URL offrent comparativement une protection plus faible. Les méthodes HEX et URL sont pourtant un premier pas vers un cryptage plus solide. Masquer ou crypter son adresse email grâce à JavaScript constitue une protection fiable contre les spambots, et peut aussi s’associer à une présentation de l’adresse email sous forme de visuel. Il est toujours préférable de ne pas créer l’adresse email sur le site Web, mais uniquement grâce à l’intermédiaire du mailto.

Cryptage JavaScript Sécurité