: Tuto Par :
Proteger un courriel facilement de méchant robots qui spam

Art par : Anzheli

Les robots, sur internet, comme on l’a déjà vu avec le htaccess, ya les bons et les mauvais, les mauvais peuvent faire plein de chose, l’une de ces choses, c’est récupérer des courriels qui traine sur les sites pour ensuite les spammer leur race. Encore aujourd’hui cette technique marche toujours très bien, nous allons voir comment s’en protéger avec plusieurs techniques pas vilaines.

En fin d’article il y aura un classement par efficacité.

Pour chaque technique on cherche à protéger cette adresse-là contact@domain.com .

Techniques N°1, ultra facile en css :

Code Direction

CSS

span.reverse {
  unicode-bidi: bidi-override;
  direction: rtl;
}

HTML

<span class="reverse">moc.rehtrebttam@retsambew</span>

CSS display:none

<style type=”text/css”>
< p span.displaynone { display:none; }
 </style>
<p>contact@<span class=”displaynone”>null</span>domain.com</p>

Pseudo entité HTML

<style type="text/css">
        .e-mail:before {
            content: attr(data-website) "\0040" attr(data-user);
            unicode-bidi: bidi-override;
            direction: rtl;
        }
    </style>
<span class="e-mail" data-user="tactnoc" data-website="moc.naimod"></span>

Technique N°2, dégeux du gros fainéant :

https://www.google.com/recaptcha/admin#mailhide

Tu colles ton adresse, Google la récupère, et ensuite tu colles le code, et Google au passage espionnera ton site. Au final l’utilisateur il a un truc comme ça c....@domain.com, il faut qu’il clique sur le "c…" et un popup apparaît, il doit complète un vieux captcha, et ensuite il pourra voir le mail. Avis d'un nazi de la vie privé ? c’est la pire solution du lot.

Techniques N°3, petits code rapides :

On met des x qu’on enlève en js :

<a href="mailto:coxntact@domainx.com" onmouseover="this.href=this.href.replace(/x/g,'');">link</a>

Au clic on enlève le contenu pourris du href qu’on remplace par le bon mail, découpé pour pas être lus.

<a href="yolo [miaou] powadatcom" rel="nofollow" onclick="this.href='mailto:' + 'contact' + '@' + 'domain.com'">Contact me</a>

Pour le JS il existe une multitude de codes, certains avec JQuery, d’autre sans, certains avec des bibliothèques, etc. perso je me suis limité à deux exemples tout simple qui fonctionne quand même correctement.

Technique N°4, le formulaire :

Je sais que c’est con à dire mais un bon vieux formulaire fonctionne très bien le mail est stocké dans le fichier PHP de la fonction et n’est jamais dispo sur le site. Après on peut toujours avoir du spam par le formulaire mais là d’autre protections existent.

Technique N°5, ROT-13 :

On utilise l’algo de chiffrement ROT-13 et ensuite on déchiffre tout ça en JavaScript. Soit vous utilisez la fonction str_rot13 de PHP, sinon y ce site là qui vous le chiffre. Ensuite vous avez juste à remplacer la partie en gras avec la version chiffrée.

<script type=”text/javascript”>
document.write(“<n uers=\”pbagnpg@qbznva.pbz\” ery=\”absbyybj\”>”.replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c<=”Z”?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));
</script>Contact</a>

Technique N°5, Hexadécimal + Code Direction :

Vous allez sur ce site  ou celui là et vous convertissez mailto:contact@domain.com en hexadécimal

<style type="text/css">
    .e-mail:before {
        content: attr(data-website) "\0040" attr(data-user);
        unicode-bidi: bidi-override;
        direction: rtl;
    }
</style>
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;%6D%61%69%6C%74%6F%3A%63%6F%6E%74%61%63%74%40%64%6F%6D%61%69%6E%2E%63%6F%6D">
  <span class="e-mail" data-user="tactnoc" data-website="moc.naimod"></span>
</a>

Technique N°6, HTMLEntities :

On remplace le @ et le . par leurs versions en Entités HTML cette technique n’est plus vraiment conseillé, bon nombre de robot savent re-encoder les entités en caractères normaux.

Technique N°7, du texte au milieu :

Truc vieux comme le monde mais qui fonctionne tout aussi bien au lieu d’écrire l’adresse comme un idiot on écrit ça : contact (Yolorobase) domain[pointage]com On peut écrire ce que l’on veut entre. Éviter de juste mettre [at] et [dot]. ça les robots le gère très bien.

Technique N°7, font-face + exadecimal + code direction :

<style type="text/css">
.e-mail:before { 
    content: attr(data-user);
    unicode-bidi: bidi-override; 
    direction: rtl;
}
.e-mail:after{
content: attr(data-website);
unicode-bidi: bidi-override;
direction: rtl;
}</style><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;%6D%61%69%6C%74%6F%3A%63%6F%6E%74%61%63%74%40%64%6F%6D%61%69%6E%2E%63%6F%6D" class="e-mail" data-website="moc.naimod"data-user="tactnoc" ><i class="fa fa-at" aria-hidden="true"></i></a>

Technique N°8, fonction PHP :

La conftion en elle même :

function hide_email($email) { 
  $character_set = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'; 
  $key = str_shuffle($character_set); $cipher_text = ''; $id = 'e'.rand(1,999999999); 
  for ($i=0;$i<strlen($email);$i+=1) $cipher_text.= $key[strpos($character_set,$email[$i])]; 
  $script = 'var a="'.$key.'";var b=a.split("").sort().join("");var c="'.$cipher_text.'";var d="";'; 
  $script.= 'for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));'; 
  $script.= 'document.getElementById("'.$id.'").innerHTML="<a href=\\"mailto:"+d+"\\">"+d+"</a>"'; 
  $script = "eval(\"".str_replace(array("\\",'"'),array("\\\\",'\"'), $script)."\")"; 
  $script = '<script type="text/javascript">/*<![CDATA[*/'.$script.'/*]]>*/</script>'; 
  return '<span id="'.$id.'">[Courriel protégé par Javascript]</span>'.$script;
}

Pour afficher un mail chiffré

<?php echo hide_email('contact@domain.com'); ?>

Efficacité :

  1. Font-face + hexadécimal + code direction
  2. Code Direction + Hexadécimal
  3. Css Code Direction (pas de mailto)
  4. CSS display None (pas de mailto)
  5. Fonction PHP
  6. Chiffrement ROT-13
  7. Remplacer @ et le . par les entités HTML (pas de mailto)
  8. Découper l’adresse avec [at] ou tout autre texte (pas de mailto)
  9. UrlEncode

Bon à savoir, même la plus mauvais des protection permet de ce protéger d’environ 1/3 des crowlers. tout ce qui est au-dessus du chiffrement ROT-13 (lui inclut) protège de 95 à 100 % des robots.

Sources :

http://stackoverflow.com/questions/483212/effective-method-to-hide-email-from-spam-bots
http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/

http://rot13.de/
http://www.maurits.vdschee.nl/php_hide_email/
Art par : Anzheli

Et vous ? Vous avez des remarques, trouvé des erreurs ou vous avez vos propres techniques de protection ? Faites les donc pété dans les commentaires. Je pourrais eventuelement les rajouter.

Avatar de l'utilisateur Nodoka

Nodoka

PedoQueen des intrawebz 2.0, antéchristine de la connerie, j'aime les loli, les vocaloid, l’humour noir (car le blanc est raciste) et les Animés. Promis je te mangerais trollement bien avec amour. Ma devise : "If her age is on the clock, she's old enough for the cock".

Articles Aléatoires

Le htaccess Part Ouane

Le htaccess Part Ouane

Faire un joli HTACCESS, simplement et rapidement un site sous apache Voir +
Après poodle et Heartbleed accueillez Drown

Après poodle et Heartbleed accueillez Drown

Drown la nouvelle casse généralisé de SSLv2 Voir +
Connecter un ordinateur linux à un NAS Synology au démarrage

Connecter un ordinateur linux à un NAS Synology au démarrage

De manière automatique avec des partages smb/cifs Voir +

Dernieres Quotes DTC

(Par LicorneBadass)

À défaut d'avoir la côte auprès de sa patronne, il l'a maintenant sur DTC.

Hitsuke : Comme d'hab, je glandais au taf, sur DTC , j'avais la tête dans le cul, j'avais pas pris mon café (bon en vrai je prend du Nesquick, mais dire que je prend du café, ça fait un peu plus viril)

Hitsuke : Ma patronne se ramène, me demande si je peux lui sortir des quotes

Hitsuke : Là je suis sur le cul, de 1 je me demande comment elle m'a grillé en train de glander, de 2, comment elle connait DTC

Tom : J'avoue ouais

Hitsuke : Du coup, je cherches pas à comprendre, je lui imprime les dernières quotes et je lui file ...

Hitsuke : Elle se tire, et reviens 1h plus tard, me demandant qu'est ce que c'était que je lui avait filé, j'ai pris une charge o/

Tom : Bah pourquoi ??

Hitsuke : Elle avait rendez-vous avec un client, elle voulait les côtes d'un produit ...

Tom : xD

Tom : GROS BOULET

Hitsuke : Bon cela dit, j'aurais quand même voulu voir sa gueule quand le client lui à demander les côtes et qu'elle a sortit ma page de quotes

Hitsuke : Parlons sérieusement sinon ....

Tom : C'est possible avec toi ?

Hitsuke : Comment on s'inscrit à Pole Emploi ? (A titre d'info, c'est pour un ami)

#19750 - Voir les commentaires

(A propos de)

Hitsuke : Comme d'hab, je glandais au taf, sur DTC , j'avais la tête dans le cul, j'avais pas pris mon café (bon en vrai je prend du Nesquick, mais dire que je prend du café, ça fait un peu plus viril)

Hitsuke : Ma patronne se ramène, me demande si je peux lui sortir des quotes

Hitsuke : Là je suis sur le cul, de 1 je me demande comment elle m'a grillé en train de glander, de 2, comment elle connait DTC

Tom : J'avoue ouais

Hitsuke : Du coup, je cherches pas à comprendre, je lui imprime les dernières quotes et je lui file ...

Hitsuke : Elle se tire, et reviens 1h plus tard, me demandant qu'est ce que c'était que je lui avait filé, j'ai pris une charge o/

Tom : Bah pourquoi ??

Hitsuke : Elle avait rendez-vous avec un client, elle voulait les côtes d'un produit ...

Tom : xD

Tom : GROS BOULET

Hitsuke : Bon cela dit, j'aurais quand même voulu voir sa gueule quand le client lui à demander les côtes et qu'elle a sortit ma page de quotes

Hitsuke : Parlons sérieusement sinon ....

Tom : C'est possible avec toi ?

Hitsuke : Comment on s'inscrit à Pole Emploi ? (A titre d'info, c'est pour un ami)

#19750 - Voir les commentaires

(Par Edwon_25)

🎶 Supercalifragilisticexpialidocious... 🎶