2010-09-08 12 views
9

Come si evita che le e-mail vengano raccolte dalle pagine Web dagli spider delle e-mail? Il collegamento di mailto: aumenta la probabilità che vengano rilevati? La codifica dell'URL è utile?Protezione degli indirizzi e-mail da bot spam/web crawler

Ovviamente la migliore contromisura è mostrare gli indirizzi e-mail solo agli utenti che hanno effettuato l'accesso o fornire un modulo di contatto anziché un indirizzo e-mail. Ma in termini di soluzioni puramente client-side, che cosa è disponibile?

+0

Per la parte relativa alle soluzioni, consultare: http: // stackoverflow.it/questions/308772/what-are-some-ways-to-protect-email-on-websites-from-spambots –

+0

Non sono sicuro che l'offuscamento dell'email sia una soluzione eccezionale (come previsto nel commento di @ Yi sopra Ma @James Black ha ragione sull'utilizzo di un modulo e-mail laddove possibile, e usando il codice lato server per elaborare il messaggio. –

risposta

1

anni dopo, ho creato il seguente jQuery per un sito web diverso:

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

Messaggi di posta elettronica vengono quindi scritte come:

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

Non e` sempre pulita , ma è molto semplice e sembra ostacolare la maggior parte dei raccoglitori di e-mail. Il vantaggio di questo metodo è che qualcuno che non utilizza JavaScript sarà probabilmente in grado di capire quale sia l'indirizzo email effettivo.


Controllare questo study on various email obfuscation methods.

2

Tendo ad evitare uno mailto in quanto rende troppo facile per le persone raccogliere indirizzi email.

Se si dispone di pagine di contatto sul proprio sito Web, è sufficiente disporre di un modulo e di inviare il codice lato server e utilizzare l'indirizzo e-mail appropriato.

Se è necessario essere in grado di avere indirizzi di altre persone disponibili, utilizzare numeri, nomi, nomi utente, un modo per identificarli.

Se si dispone di un indirizzo e-mail in un intervallo è probabile che venga prelevato, anche se si tenta di nasconderlo, in quanto questi programmi possono essere piuttosto complessi, come la ricerca di indirizzi e-mail è quello che sono.

Come per la maggior parte dei segreti, se non si desidera che gli altri li ottengano, non metterli sulla pagina.

+0

Le e-mail sono sulla pagina, in '' s. Oltre a rimuovere gli indirizzi e-mail, c'è qualcosa che io può fare per diminuire la probabilità che vengano prelevati dagli spider delle email? – Zaz

5

La maggior parte degli spider di posta elettronica non ha interpreti javascript, quindi se hai davvero bisogno dello mailto: puoi iniettarlo con javascript ... assicurati che l'indirizzo sia oscurato in javascript in qualche modo, ad es.

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

Se è necessario visualizzare l'indirizzo email nella pagina, una soluzione comune è quello di generare un'immagine usando qualcosa come GD di PHP (anche se l'iniezione JavaScript dovrebbe funzionare bene anche per questo).

L'idea è rimuovere gli indirizzi di posta elettronica dall'HTML e iniettarli con javascript. In questo modo l'indirizzo e-mail non appare nella sua forma originale in alcuno del traffico HTTP, che è ciò che sta guardando lo spider.

+0

Grazie, è un modo abbastanza intelligente per farlo. – Zaz

+0

Quindi devi usare javascript per usare questa pagina, che può ridurre i tuoi utenti. –

1

Io di solito li divido in parti separate e poi li ri-combinano usando javascript. Il javascript finale fa un documento. Scrivi per scrivere l'html.

cioè

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