Obfusquer Votre Adresse Mail Et échapper Aux SPAM

| Comments

Spam in mailbox

Il nous arrive bien souvent de devoir renseigner notre @mail au sein d’une page web.
Seulement il est essentiel de prendre des précautions sur la manière de la renseigner face au SPAM.
En effet, une @mail renseignée en simple texte est facilement détectable par un robot (via une simple expression régulière par exemple) et en moins de quelques secondes, vous voilà inscrit sur une liste de SPAM contre votre volonté.

Des méthodes sont déjà utilisées pour essayer de palier à ce problème:

Obfuscation textuelle

1
2
Remplacer @ et . par "[at]" et "[dot]"
email[at]domain[dot]com

Avantages

  • Obfuscation efficace et implémentation simple.

Inconvénients

  • Impossibilité de construire un mailto.

Obfuscation par CSS

1
<span class=“obfuscate”>moc.niamod@liame</span>
1
2
/* Et le renverse via CSS */
.obfuscate { unicode-bidi: bidi-override; direction: rtl; }

Avantages

  • Obfuscation très efficace.

Inconvénients

  • Impossibilité de construire un mailto.
  • Si le CSS n’est pas disponible, l’@mail s’affichera à l’envers.

Obfuscation par JavaScript

La plupart des robots n’exécutent pas de Javascript (pour des questions de performance et pour ne pas se faire tracer, j’imagine…). Alors on peut s’amuser à utiliser des algorithmes tels que le [ROT13][1] (rotate by 13 places).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Rot13 = {
    map: null,

    convert: function(a) {
        Rot13.init();

        var s = ””;
        for (i=; i < a.length; i++) {
            var b = a.charAt(i);
            s += ((b>=A && b<=Z) || (b>=a && b<=z) ? Rot13.map[b] : b);
        }
        return s;
    },

    init: function() {
        if (Rot13.map != null)
            return;

        var map = new Array();
        var s   = abcdefghijklmnopqrstuvwxyz;

        for (i=; i<s.length; i++)
            map[s.charAt(i)] = s.charAt((i+13)%26);
        for (i=; i<s.length; i++)
            map[s.charAt(i).toUpperCase()] = s.charAt((i+13)%26).toUpperCase();

        Rot13.map = map;
    },

    write: function(a) {
        document.write(Rot13.convert(a));
    }
}
1
2
3
<script type=“text/javascript”>
   Rot13.write(rznvy@qbznva.pbz);
</script>

Avantages

  • Obfuscation très efficace.

Inconvénients

  • Si le client web ne supporte pas le JavaScript, aucune @mail ne sera affichée.

D’autres solutions existent comme afficher l’@mail dans une image mais les robots utilisent des techniques de reconnaissance optique de caractères au sein d’une image: l’OCR.

Email address embedded in an image

Tests grandeur nature

Un collège de techblog nous invite à regarder le volume de SPAM reçu en fonction des différentes méthodes d’obsfuscation après avoir laissé ses @mail dans la nature pendant 1 an et demi.

Volume de SPAM reçu en fonction des différentes méthodes d’obfuscation

Les résultats parlent d’eux même, ne renseignez pas (même sous la torture) votre @mail en simple texte ! Utilisez au minimum la méthode n°1, qui diminue fortement les chances d’être détecté par un robot.

More…