Obfusquer les adresses mails dans vos pages via javascript (jQuery)
Voici comment empêcher les adresses mails se trouvant dans vos pages de se faire spammer par des bots. Et en fait c'est plutôt de la dèsobfuscation (houlà) par javascript
Bon, si vous n'êtes pas spécialement parano méfiant, ce tutoriel risque de n'avoir que peu d'interet pour vous
Pourquoi et comment ?
Tout simplement parce que de nombreux robots scannent les sites à la recherche d'adresses mail visibles. Et que vous en avez marre de voir votre boite à spam déborder depuis que vous avez laissé votre mail de contact sur votre site.
Sur de nombreux site, on voit des adresses mail écritent de cette façon: p.dupond[at]example[point]com
Alors effectivement ça empêche de se faire spammer puisque les caractères "@" et "." n'y apparaissent pas. Mais par contre ce n'est pas très ergonomique pour le visiteurs qui voudraient vous envoyer un email. Donc, via javascript, on vas remplacer les "faux caractères" par ceux d'origine. Et comme les robots n'interprètent pas le javascript (ou très mal), fini le spam tout en gardant des adresses fonctionnelles.
Exemples
Comme d'habitude, un bel exemple vaut mieux qu'un long discours: Exemples d'obfuscation d'email
Mise en place
- 1. On inclu la librairie jQuery dans la page (si ce n'est pas déjà fait) entre les balises HTML
<head>et</head>
- 2. On ajoute le bout de javascript suivant pour rendre nos adresses mail exploitables
Les portions de code suivantes sont à ajouter soit entre des balises <script type="text/javascript"> //le code ici </script>, soit dans un fichier .js
Par contre il doit impérativement ce trouver après jQuery.
//Pour tous les liens commençant par "mailto" ou les span ayant une class "wmail"
$('a[href^="mailto"], span.wmail').each(function (i) {
//Remplacment du texte dans l'élément
var temp = $(this).html();
temp = temp.replace("[atte]","@");
temp = temp.replace("[p]",".");
$(this).html(temp);
//Si il y a un attribut "href", on remplace le texte dans l'attribut
if($(this).attr("href")){
var temphref = $(this).attr("href");
temphref = temphref.replace("[atte]","@");
temphref = temphref.replace("[p]",".");
$(this).attr("href",temphref);
}
})
});
Le modèle pour ce code est: p.dupond[atte]example[p]com
Et donc, écrivez vos adresses mail comme ceci
Pour une adresse mail de type lien (mailto):
Pour une adresse mail en texte simple:
Donc pour les liens, c'est automatique, mais pour les mail en texte simple, il faut l'entourer d'une balise span avec une classe "wmail".
Pour changer les valeurs par défaut [atte] et [p], il vous suffit d'éditer un peu le code javascript.
Conclusions
Voilà, ça n'a rien d'exceptionnel, mais cette solution est simple et efficace !
Guide pour mieux gérer vos emails via gmail (multicompte, redirection, ...)
Comment réussir vos concours sur vos blogs ?
Brève Wordpress: 40 liens, thèmes, plugins et astuces en tout genre !
Ajouter un lien pour envoyer la page par e-mail
Effectivement ça marche, mais moi j’aurais plutôt tendance à conseiller d’utiliser gmail, le spamfilter est quand même uber fort =D
Mais j’suis content de voir que t’es un utilisateur de JQuery \o/
@Palleas
Effectivement pour les utilisateurs de Gmail, le spam n’est qu’un mauvais souvenir ! Mais il est loin d’être dominant, car c’est fou le nombre de personnes qui continuent d’utiliser leur adresse mail fournie par leur FAI !
Ps: bonne chance avec symphony, moi je suis en train de tenter le coup avec Jelix ^^
J’hésite à continuer avec Symfony, c’est une grosse usine à gaz quand même :/
Jelix ca vaut quoi ? (Ya mon adresse msn en commentaire, des fois que tu ne voudrais pas que ça parte en flood :p)
Ah, tres interessant !
Mis sur onane.net
Bonne continuation
Vraiment super !!
Merci !