Technique
28 avril 2022

Protégez votre adresse e-mail contre les spams

Les spams sont interdits en France 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).

S'il est indispensable de divulguer son adresse électronique, cela comporte également le risque d'être piraté. Les spams peuvent être ennuyeux et présenter un risque pour la sécurité, surtout s'il s'agit d'emails de phishing. Cela inclut les logiciels malveillants que les cybercriminels cachent dans les pièces jointes des courriels. Mais la nécessité est mère de l'invention : il existe de nombreuses astuces que les exploitants de sites web peuvent utiliser pour limiter l'accès des spambots à leurs adresses électroniques. Ces méthodes seront comparées et discutées, avec leurs avantages et leurs inconvénients.

Les spambots à l'affût de nouvelles victimes

L'Email Harvesting est l'achat d'adresses électroniques à des fins de publicité déloyale, d'attaques de phishing et de diffusion de logiciels malveillants. Des programmes spécialisés, tels que les spambots ou les robots collecteurs, recherchent des adresses électroniques sur des sites web, des listes de contacts et des forums. La syntaxe unique des adresses électroniques peut vous aider à identifier les informations que vous recherchez. Les robots peuvent rechercher des textes sources en utilisant le signe @. Ce signe n'est pas utilisé dans le texte, mais il sert à séparer le domaine du nom d'utilisateur dans les adresses électroniques. Les descriptions constituent également une protection insuffisante. Une protection insuffisante est également offerte par des spambots sophistiqués qui incluent souvent d'autres orthographes dans leurs résultats de recherche, comme [at] ou [AT] ou (at]) :

                            utilisateur@domaine.fr
utilisateur[at]domaine.com

Si le signe @ (ou ses équivalents) contient deux termes séparés par des points, cela indique qu'il s'agit d'une adresse électronique. La description du point situé avant le domaine de premier niveau offre également une faible protection et réduit la lisibilité.

                            utilisateur[AT]domaine[DOT]fr
                        

La référence au courriel HTML est encore plus perfide, comme dans l'exemple "mailto:utilisateur@domaine.fr". Les visiteurs d'un site web peuvent ouvrir leur programme de messagerie préféré en cliquant sur un bouton. L'adresse du destinataire sera copiée dans le champ approprié. C'est un moyen pratique d'envoyer des courriers électroniques, mais cela permet également aux spambots de savoir que vous saisissez l'adresse. Les exploitants de sites Web peuvent essayer de forcer les utilisateurs à utiliser des modèles traditionnels pour fournir leur adresse électronique. Pour que les adresses électroniques soient accessibles sans entrave, il est important que l'internaute puisse lire clairement le contenu.

Le code classique d'une adresse e-mail non protégée

Pour mieux se protéger contre les robots de récolte automatisée, il est important de comprendre comment une adresse est intégrée dans une page web. Le code suivant peut être utilisé pour intégrer une adresse électronique simple dans une page Web :

                            Pour plus d'informations, veuillez nous contacter par e-mail utilisateur@domaine.fr.
                        

Les informations suivantes sont affichées lorsqu'un utilisateur visite un site web utilisant ce code :

Pour plus d'informations, veuillez nous contacter par e-mail à l'adresse suivante : utilisateur@domaine.fr .

Il s'agit de la meilleure présentation d'adresse électronique disponible sur le Net, du point de vue de l'utilisateur. Pour préserver la convivialité et la facilité d'utilisation de cette présentation, les méthodes les plus courantes pour protéger votre adresse électronique consistent à la rendre invisible dans le texte source sans modifier son apparence dans le navigateur. Vous pouvez également séparer l'adresse électronique et transmettre la référence via un serveur. Le navigateur affiche moins souvent l'adresse électronique. Cela est dû à son inefficacité dans la protection contre le spam et à la gêne de l'utilisateur.

Pour protéger votre adresse électronique du spam, vous pouvez la remplacer, la cacher ou l'encoder dans le texte source. Cela permettra d'arrêter non seulement les spambots, mais aussi les utilisateurs.

Remplacer l'adresse e-mail

La protection par substitution consiste à supprimer l'adresse électronique du texte source et à la remplacer par une image ou un lien de redirection vers le mailto.

Intgérer l'adresse e-mail en tant qu'image

Un visuel est une adresse électronique intégrée sous la forme d'un visuel. Il est toujours lisible par les utilisateurs, mais il est difficile à reconnaître pour les robots. Bien qu'il existe quelques spambots capables de lire des éléments graphiques à l'aide de l'OCR ( Optical Character Recognition), ils sont très rares. Il est possible d'insérer des informations de contact dans une image, ce qui offre une protection élevée contre le spam. Les sites web dans ce domaine présentent des limites importantes en termes de confort d'utilisation. Le code HTML ci-dessous peut être utilisé pour intégrer une adresse électronique sous forme d'image sur un site web.

L'image s'affiche dans le navigateur pour les visiteurs du site web comme suit :
Intégration e-mail par image

Cette présentation de l'image est facilement lisible par la plupart des utilisateurs. Le texte ne peut pas être copié ou lié à une source mailto. Bien que la saisie manuelle d'une adresse puisse être pénible pour la plupart des utilisateurs, les informations textuelles présentées graphiquement ne sont souvent pas facilement accessibles aux personnes souffrant de déficiences visuelles. Comme ces descriptions peuvent être lues par des lecteurs d'écran, il est préférable d'inclure une description de l'image en tant que texte alt. Elles sont également faciles à déchiffrer par les spambots, cette méthode n'est donc pas recommandée pour la prévention du spam.

Lien HTML via une redirection

Il peut être judicieux de séparer votre adresse électronique du site web afin de la protéger des pirates. En général, un script est utilisé pour rediriger les utilisateurs vers le lien "emailto" après qu'ils aient cliqué dessus. Cela ouvre directement le programme de messagerie de l'utilisateur avec l'adresse électronique appropriée. Ce lien apparaît comme un fichier aux spambots qui décryptent le code source d'un site Web. Il protège l'URL contre une lecture automatique par ces derniers. Ce système de protection peut être mis en œuvre par un lien vers un fichier PHP qui contient la redirection.

                            Pour plus d'informations, veuillez envoyer un courriel à EMail.
                        

Le fichier redirect-mailto.php contient un script qui redirige vers l'URL mailto.

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

Les spambots qui ont accès au code PHP des sites web ne pourront pas accéder à l'adresse e-mail car elle est traitée sur le serveur. Il est possible de combiner cette méthode avec l'intégration de l'adresse sous forme de visuel.

Cette technique présente un inconvénient : l'utilisateur doit passer par un intermédiaire pour accéder à l'adresse électronique et à l'adresse de courrier électronique. Cet intermédiaire est généralement un programme de messagerie comme Thunderbird ou Outlook. Cependant, les services de webmail peuvent être définis comme des intermédiaires dans les navigateurs modernes.

Masquer l'adresse e-mail

Il existe des stratégies alternatives si vous ne souhaitez pas remplacer votre adresse électronique par une image ou un lien sendto. Il est possible d'encoder votre adresse électronique en intégrant des éléments supplémentaires ou en les compilant dans le navigateur avec JavaScript. Vous pouvez créer un encodage simple avec des entités HTML ainsi que des encodages URL ou HEX. Les fonctions de commentaire, les éléments sont quelques-unes des options permettant de masquer votre adresse électronique. Une autre option consiste à masquer l'adresse électronique avec une composition dynamique.

Cela signifie que les caractères sont simplement transcrits. Elle ne fait que manipuler l'adresse dans le code source. Cela ne modifie pas la façon dont elle apparaît dans le navigateur.

Cacher l'adresse e-mail en encodant les caractères

Les pourcentages HEX , HTML entity et URL Encoding sont les caractères les plus couramment utilisés pour masquer les adresses électroniques dans le code source. Ces descriptions ont été créées à l'origine pour intégrer des caractères spéciaux dans des caractères standard. Ce type d'encodage peut être utilisé pour masquer les adresses électroniques car les caractères sont automatiquement transcrits dans le navigateur. Si les caractères de l'adresse électronique utilisateur@domaine.fr sont masqués par des entités HTML, ils sont d'abord écrits dans un style alternatif.

&commat ; = @

. = . (point)

Ces informations seront incluses dans le code source :

                            Pour plus d'informations, veuillez nous envoyer un courriel à l'adresse suivante : user@domaine.fr
                        

Les entités HTML sont uniquement destinées aux caractères spéciaux, il n'est donc pas possible d'encoder l'intégralité de l'adresse électronique ou de la référence du courrier. Cependant, une description utilisant l'encodage HEX peut être faite avec le caractère Unicode qui correspond. Cela apparaîtra comme suit.

&#nombrecorrespondant ;

Le numéro hexadécimal de la lettre correspond à la minuscule "x" en général. Par exemple, la lettre "m", écrite en "x" minuscule ou "m", est le numéro Hex de la lettre correspondante. L'adresse électronique utilisateur@domaine.fr, y compris le lien mailto, sera donc écrite comme suit :

                            Contactez-nous par courriel à l'adresse E-Mail pour plus d'informations.
                        

Les listes en ligne permettent de trouver facilement les chiffres nécessaires à la traduction d'une adresse électronique. htmlarrows.com en fournit un résumé clair. Il est recommandé d'utiliser des programmes d'encodage gratuits pour coder les adresses électroniques complètes. Ceux-ci sont disponibles via des applications web et de nombreux sites web.

L'encodage des URL est un autre moyen de protéger votre adresse électronique contre le spam. Cette technique était à l'origine utilisée pour insérer des caractères spéciaux dans les URL qui pouvaient être interprétés par le navigateur. Ces caractères sont constitués du symbole du pourcentage suivi du code ASCII dusigne en question (formé de deux caractères). Ce codage URL permet de masquer le caractère @ dans l'exemple suivant :

                            Pour plus d'informations, veuillez nous envoyer un courriel à l'adresse E-Mail.
                        

Il est simple et rapide de masquer votre adresse électronique à l'aide du codage. Cependant, la protection est plus faible que d'autres mesures car les spambots peuvent déchiffrer des codes simples.

Ajouter du texte pour masquer l'e-mail

Il est possible de masquer votre adresse électronique simplement en ajoutant des caractères inutiles au code source. Les programmes ne pourront pas voir l'intégralité de l'adresse électronique et ne seront pas en mesure de l'interpréter automatiquement. Ce type de protection peut être mis en œuvre facilement en utilisant les commentaires HTML.

<!-- commentaire -->

Pour être le plus efficace possible, l'adresse électronique ne doit contenir que les caractères couramment utilisés.

<!-- abc@def -->

<!-- @abc.fr -->

Les robots qui tentent de scanner le site ne pourront pas lire les commentaires s'ils sont rédigés de cette manière :

                            Pour plus d'informations, veuillez nous contacter par e-mail à l'adresse suivante : utili<!-- abc@def -->sateur@domai<!-- @abc.fr -->ne.fr.
                        

Les commentaires HTML sont toutefois invisibles dans le navigateur, de sorte qu'ils ne gênent pas la lecture de l'utilisateur.

Une autre option consiste à insérer n'importe quel caractère dans le navigateur sans le commenter, à condition qu'il soit invisible grâce au CSS. L'exemple suivant montre l'adresse électronique entrecoupée d'un élément span-. Le navigateur ne tient pas compte du contenu de la balise car le champ d'affichage est nul ( ).

                            <style type="text/css">
span.protectionspam {display:none;}
</style>
Pour toute information complémentaire, veuillez nous contacter par e-mail à : utilisateur<span class="protectionspam">SUITEDECARACTERES</span>@domaine.fr.

Le spambot ne lira le texte du span que si l'utilisateur a saisi l'adresse électronique correcte. Cela permet aux opérateurs de sites Web d'utiliser l'adresse électronique utilisateurSUITEDECARACTERES@domaine.fr comme un pot de miel, afin de localiser les adresses des expéditeurs et de bloquer les attaques de spam.

Le masquage complémentaire présente l'inconvénient de ne pas permettre de lier l'adresse à un courriel HTML. Les utilisateurs devront copier manuellement l'adresse dans leur programme de messagerie.

Inverser une suite de caractères

Le CSS peut être utilisé pour ajouter des caractères aux codes sources, ainsi que pour inverser une chaîne de caractères . Cela permet aux opérateurs web et aux spambots d'être trompés par des adresses électroniques qui ne sont pas dans le bon ordre.

                            <style type="text/css">
span.ltrText {unicode-bidi: bidi-override; direction: rtl}
</style>Pour plus d'informations, contactez-nous par courrier électronique à l'adresse suivante : <span class="ltrText">rf.eniamod@ruetasilitu</span>.

Si les spambots peuvent trouver l'adresse rf.eniamod@ruetasilitu dans le code source, la propriété CSS unicode-bidi (et la valeur bidi-override) permet que tous les caractères inclus dans l'élément span soient lus dans le navigateur selon la direction souhaitée : dans ce cas, de droite à gauche( rtl ).

Cette technique de masquage fait que les caractères ne sont pas disposés dans le bon ordre. Ce piège est détecté par les spambots les plus avancés.

Composition dynamique à l'aide de JavaScript

JavaScript offre une autre option pour s'assurer que votre adresse électronique est correctement saisie dans le navigateur. L'adresse est décomposée en plusieurs parties qui sont créées dynamiquement par le navigateur lors de l'ouverture du site.

                            <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 à :
<a href=" + "mai" + "lto" + ":" + part5 + ">" + part1 + part3 + part4 + "</a>.");
</script>

Les lignes 2 à 6 décrivent les différentes sections d'une adresse électronique. Le signe @ peut être divisé en deux parties. La valeur Math.pow(2)dans la partie 2 indiquequel caractère se trouve dans la combinaison compatible ASCII (2 6 = 64). Il est converti en caractère correspondant à l'aide de la partie 3 et de la fonction String.fromCharCode(part2). Les fonctions aux lignes 7 et 8 document.write() jouent les rôles des étapes décrites dans la partie1, section5. Le script s'exécute du côté client. Vous pouvez également avoir une version du script qui se lance après le clic de l'utilisateur.

Les techniques anti-spam basées sur des scripts construits dynamiquement supposent que les moissonneurs d'e-mails ne peuvent pas mettre en œuvre entièrement JavaScript. Il s'agit d'un niveau de protection élevé. Cette méthode présente un inconvénient majeur. Les utilisateurs qui ont désactivé JavaScript dans un navigateur ne reçoivent pas autant d'informations de contact. Il s'agit toutefois d'un faible pourcentage d'utilisateurs.

Crypter l'adresse e-mail

JavaScript permet de créer des adresses électroniques en plusieurs parties et de les crypter pour les protéger contre le spam. ROT13 est une méthode courante de cryptage des e-mails. Elle peut être mise en œuvre en utilisant seulement quelques lignes de 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, y compris la référence mailto ( znvygb:hgvyvfngrhe@qbznvar.se ), ainsi que les instructions pour le cryptage, lignes 2 à 7. Les lignes 8 à 13 permettent à l'utilisateur d'ouvrir son programme de messagerie préféré et au destinataire d'entrer l'adresse en clair dans les champs.

Lorsque le lien "Email : cliquez ici" (lignes 15-16) est cliqué, le script s'active. Le texte "Ouvrir le programme de messagerie", s'affiche immédiatement après avoir cliqué sur le lien (lignes 15 et 16).

Cette méthode de cryptage, tout comme la composition en JavaScript de l'adresse électronique, repose sur le fait que les spambots ne sont pas en mesure d'interpréter pleinement les commandes côté client. L'adresse électronique cryptée peut en principe être utilisée comme un pot de miel. Le domaine n'a pas besoin d'être crypté dans ce cas.

Les captchas

Les captchas peuvent également être utilisés pour protéger votre adresse électronique contre le spam. Si l'adresse électronique est vérifiée comme étant celle d'un humain et non d'un robot, elle sera affichée en texte clair. Ces vérifications peuvent prendre de nombreuses formes. Par exemple, il peut être demandé au visiteur de copier une combinaison de chiffres et de lettres. Elles peuvent également inclure des calculs simples, des énigmes ou des exercices de reconnaissance. Google propose un CAPTCHA gratuit avec sa solution reCAPTCHA.

Les captchas offrent une meilleure protection contre le spam que les autres méthodes. Les adresses électroniques ne sont en aucun cas affichées ou cryptées dans le code source. Ils peuvent également être facilement intégrés dans le design d'un site Web. Cette méthode n'est pas facile à utiliser et nécessite un certain effort pour atteindre l'adresse électronique. Elle rend également difficile pour les utilisateurs de trouver les informations dont ils ont besoin.

Utiliser un formulaire de contact

De nombreux opérateurs de sites Web proposent des formulaires de contact qui permettent aux visiteurs d'entrer leur message, leur nom et leurs coordonnées. C'est un moyen d'éviter que votre adresse électronique ne soit révélée sur un site web. Ces formulaires peuvent être intégrés aux sites web à l'aide d'un langage de programmation côté serveur tel que le PHP. Ces formulaires sont sécurisés par des captchas pour empêcher les spambots de les remplir automatiquement.

Conclusion

Vos exigences en matière de présentation et vos solutions techniques détermineront les stratégies que vous utiliserez pour protéger votre adresse électronique. La redirection de l'URL mailto à l'aide de PHP ou d'un autre langage de programmation côté serveur est une bonne méthode. Cette méthode doit être prise en charge par votre site d'hébergement. Il est préférable de présenter votre adresse électronique sous forme d'image sur votre site web si vous prévoyez de l'afficher.

La transcription et l'encodage avec des entités HTML, des codes HEX ou l'encodage d'URL offrent une protection comparativement plus faible. Les codes URL et HEX sont un bon début pour un cryptage plus fort. Le JavaScript peut être utilisé pour cacher ou crypter votre adresse électronique. Il peut également être associé à une présentation visuelle. Il est préférable de ne pas créer d'adresse électronique sur le site web mais uniquement par le biais du Mailto.