La protection des adresses électroniques contre les robots collecteurs de mails / robots d'exploration Web

StackOverflow https://stackoverflow.com/questions/3663963

Question

Comment empêchez-vous des e-mails sont rassemblés à partir de pages web par des araignées e-mail? Est-ce que mailto: les liant augmentent la probabilité de leur être ramassé? Est URL codant utile?

Il est évident que la meilleure contre-mesure est seulement d'afficher des adresses e-mail pour les utilisateurs connectés, ou de fournir un formulaire de contact au lieu d'une adresse e-mail. Mais en termes de solutions purement côté client, ce qui est disponible?

Était-ce utile?

La solution 4

Des années plus tard, j'ai créé le jQuery suivant pour un autre site:

$(".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 il est très simple et semble déjouer la plupart des pêcheurs email. L'avantage de cette méthode est que quelqu'un de ne pas utiliser JavaScript sera probablement en mesure de travailler à ce que l'adresse e-mail est réelle.


Consultez cette étude sur divers email méthodes d'obscurcissement .

Autres conseils

La plupart des araignées de messagerie ne sont pas les interprètes javascript, donc si vous avez vraiment besoin mailto: vous pouvez l'injecter avec javascript ... assurez-vous juste l'adresse est obscurci 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 ne figure pas dans sa forme originale dans tout le trafic HTTP, ce qui est ce que l'araignée regarde.

Je tends à éviter une mailto car elle rend trop facile pour les gens à des adresses e-mail récolte.

Si vous allez avoir des pages de contact sur votre site Web, ont juste une forme, et quand ils soumettent votre code côté serveur et utiliser l'adresse e-mail appropriée.

Si vous devez être en mesure d'avoir les adresses des autres disponibles, les numéros d'utilisation, les noms, les noms d'utilisateur, d'une certaine façon de les identifier.

Si vous avez juste une adresse e-mail dans une période, il est susceptible d'être pris, même si vous essayez de le cacher, car ces programmes peuvent être assez complexes, comme la recherche d'adresses e-mail est ce qu'ils font.

Comme avec la plupart des secrets, si vous ne voulez pas que d'autres pour les obtenir, ne les mettez pas sur la page.

Je les ai divisé généralement en parties séparées, puis les recombiner en utilisant javascript. Le javascript final ne document.write pour écrire le code html.

i.e..

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>";

Si vous n'avez pas besoin le lien de messagerie que vous pouvez remplacer le @ symbole [at]

Exemple: sam [at] example.com

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top