2010-09-08 11 views
9

¿Cómo se evita que los correos electrónicos se recopilen de las páginas web a través de las arañas de correo electrónico? ¿Los enlaces mailto: aumentan la probabilidad de que sean recogidos? ¿Es útil la codificación URL?Proteger las direcciones de correo electrónico de los robots de spam/rastreadores web

Obviamente, la mejor contramedida es mostrar solo las direcciones de correo electrónico a los usuarios que han iniciado sesión, o proporcionar un formulario de contacto en lugar de una dirección de correo electrónico. Pero en términos de soluciones puramente del lado del cliente, ¿qué hay disponible?

+0

Para la parte de soluciones, consulte: http: // stackoverflow.com/questions/308772/what-are-some-ways-to-protect-emails-on-websites-from-spambots –

+0

No estoy seguro de si la ofuscación del correo electrónico es una gran solución (como se indica en el comentario de @Yi anterior) Pero @James Black tiene razón al usar un formulario de correo electrónico siempre que sea posible, y usar el código del lado del servidor para procesar el mensaje. –

Respuesta

1

años más tarde, he creado la siguiente jQuery para un sitio web diferente:

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

Los correos electrónicos se escriben como:

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

No es perfecto , pero es muy simple y parece frustrar a la mayoría de los recolectores de correo electrónico. La ventaja de este método es que alguien que no use JavaScript probablemente podrá determinar cuál es la dirección de correo electrónico real.


Control hacia fuera este study on various email obfuscation methods.

2

Tiendo a evitar un mailto ya que hace que sea muy fácil para las personas cosechar las direcciones de correo electrónico.

Si va a tener páginas de contacto en su sitio web, solo tiene un formulario y cuando envíen el código del lado del servidor y utilicen la dirección de correo electrónico correspondiente.

Si necesita poder tener direcciones de otras personas disponibles, use números, nombres, nombres de usuario, alguna forma de identificarlos.

Si solo tiene una dirección de correo electrónico dentro de un lapso, es probable que la recojan, incluso si intenta ocultarla, ya que estos programas pueden ser bastante complejos, ya que encontrar direcciones de correo electrónico es lo que se trata.

Al igual que con la mayoría de los secretos, si no desea que otros los obtengan, no los ponga en la página.

+0

Los correos electrónicos están en la página, en '' s. Además de eliminar las direcciones de correo electrónico, ¿hay algo que yo haga? puede hacer para disminuir la probabilidad de que sean recogidos por las arañas de correo electrónico? – Zaz

5

La mayoría de las arañas de correo electrónico no tienen intérpretes de JavaScript, por lo que si realmente necesita el mailto: puede inyectarlo con javascript ... solo asegúrese de que la dirección esté oculta en el javascript de alguna manera, p. Ej.

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

Si se necesita mostrar la dirección de correo electrónico en la página, una solución común es generar una imagen con algo así como gd de php (aunque la inyección de JavaScript debe trabajar bien para esto también).

La idea es eliminar las direcciones de correo electrónico del HTML e insertarlas con javascript. De esta forma, la dirección de correo electrónico no aparece en su forma original en el tráfico HTTP, que es lo que está mirando la araña.

+0

Gracias, esa es una forma bastante inteligente de hacerlo. – Zaz

+0

Luego debe requerir javascript para usar esta página, lo que puede reducir a los usuarios. –

1

Normalmente los divido en partes separadas y luego los vuelvo a combinar mediante javascript. El javascript final hace un document.write para escribir el html.

es decir

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