2010-09-08 31 views
9

Comment empêcher les courriels d'être collectés à partir de pages Web par des robots de messagerie? Est-ce que mailto: les reliant augmente la probabilité qu'ils soient pris en charge? L'encodage d'URL est-il utile?Protection des adresses e-mail contre les robots spammeurs/crawlers

La meilleure contre-mesure consiste évidemment à afficher uniquement les adresses e-mail des utilisateurs connectés ou à fournir un formulaire de contact au lieu d'une adresse e-mail. Mais en termes de solutions purement client, qu'est-ce qui est disponible?

+0

Pour la partie solutions, consultez: http: // stackoverflow.com/questions/308772/what-are-ways-to-protect-emails-on-websites-from-spambots –

+0

Je ne suis pas sûr que l'obfuscation d'email est une solution géniale (comme indiqué dans le commentaire de @ Yi ci-dessus Mais @James Black a raison d'utiliser un formulaire e-mail dans la mesure du possible, et d'utiliser le code côté serveur pour traiter le message –

Répondre

1

ans plus tard, je l'ai créé le jQuery suivant pour un autre site Web:

$(".email").each(function() { 
    $(this).html($(this).html().replace("...", "@").replace(/\.\.\./g, ".")); 
    $(this).attr("href", $(this).attr("href").replace("...", "@").replace(/\.\.\./g, ".")); 
}); 

Les e-mails sont ensuite écrites comme:

<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a> 

Il est pas parfait , mais c'est très simple et semble contrarier la plupart des cueilleurs de courrier électronique. L'avantage de cette méthode est que quelqu'un qui n'utilise pas JavaScript sera probablement en mesure de déterminer quelle est l'adresse e-mail réelle.


Vérifiez ce study on various email obfuscation methods.

2

J'ai tendance à éviter un mailto car il est trop facile pour les gens de récolter des adresses email.

Si vous allez avoir des pages de contact sur votre site Web, il suffit d'avoir un formulaire, et quand ils soumettent votre code côté serveur et utilisez l'adresse e-mail appropriée.

Si vous devez être en mesure d'avoir des adresses d'autres personnes disponibles, utilisez des numéros, des noms, des noms d'utilisateur, en quelque sorte pour les identifier. Si vous avez juste une adresse e-mail dans un span, il est susceptible d'être ramassé, même si vous essayez de le cacher, car ces programmes peuvent être assez complexes, car trouver des adresses e-mail est ce qu'ils sont.

Comme avec la plupart des secrets, si vous ne voulez pas que les autres les obtiennent, ne les mettez pas sur la page.

+0

Les e-mails sont sur la page, en ' 's. peut faire pour diminuer la probabilité de leur ramassage par les robots d'email – Zaz

5

La plupart des araignées n'ont pas d'interpréteur javascript, donc si vous avez vraiment besoin du mailto: vous pouvez l'injecter avec javascript ... assurez-vous simplement que l'adresse est cachée dans le javascript en quelque sorte, par exemple.

myLink.href='mai'+'lto:'+'bob' 
      +'@' 
      +'example.com'; 

Si vous avez besoin pour afficher l'adresse e-mail sur la page, une solution commune est de générer une image en utilisant quelque chose comme de php gd (bien que l'injection javascript devrait fonctionner ok pour cela aussi).

L'idée est de supprimer les adresses e-mail du HTML et de les injecter avec javascript. De cette façon, l'adresse e-mail n'apparaît pas dans sa forme d'origine dans le trafic HTTP, qui est ce que l'araignée regarde.

+0

Merci, c'est une façon intelligente de le faire – Zaz

+0

Ensuite, vous devez avoir besoin de javascript pour utiliser cette page, ce qui peut réduire vos utilisateurs. –

1

Je les divise généralement en parties séparées, puis les combine à nouveau en utilisant javascript. Le javascript final fait un document.write pour écrire le html.

-à-dire

var mail = "mailto"; 
var namepart = "test.user"; 
var domainpart = "example"; 
var tld = "com"; 
var address = namepart + "@" + domainpart + "." + tld; 
document.write("<a href=" + mail + ":" + address + '">' + address + "</a>";