¿La mejor manera de ofuscar una dirección de correo electrónico en un sitio web?


136

He pasado los últimos días trabajando para actualizar mi sitio web personal. La URL de mi sitio web personal es (mi nombre). (Mi apellido) .com, ya que mi apellido es bastante inusual, y tuve la suerte de elegir el nombre de dominio. Mi dirección de correo electrónico es (mi nombre) @ (mi apellido) .com. Entonces, realmente, cuando se trata de adivinarlo, no es muy difícil.

De todos modos, quiero integrar un mailto: enlace en mi sitio web, para que la gente pueda contactarme. Y, a pesar de que mi dirección de correo electrónico no es muy difícil de adivinar, prefiero que los robots de spam no la aprovechen y solo rastreen sitios web para buscar patrones de direcciones de correo electrónico y los agreguen a su base de datos.

¿Cuál es la mejor manera para mí de ofuscar mi dirección de correo electrónico, preferiblemente en forma de enlace? Los métodos que conozco son:

<a href="mailto:x@y.com">e-mail me</a>

Funciona, pero también significa que tan pronto como mi sitio web llegue a Google, estaré vadeando a través del correo no deseado ya que los bots de correo no deseado eligen fácilmente mi dirección de correo electrónico.

<img src="images/e-mail.png" />

Esto es menos deseable, porque no solo los visitantes no podrán hacer clic en él para enviarme un correo electrónico, sino que los robots de spam más inteligentes probablemente podrán detectar los caracteres que contiene la imagen.

Sé que probablemente no haya una solución perfecta, pero me preguntaba qué pensaban todos que era lo mejor. Definitivamente estoy dispuesto a usar JavaScript si es necesario, ya que mi sitio web ya usa toneladas de él.


10
Reenvíe el mensaje a su cuenta de GMail. ;-)
Dave Jarvis


Esta publicación debe estar vinculada aquí.
Clément

Respuestas:


106

Codifico los caracteres como entidades HTML ( algo como esto ). No requiere que JS esté habilitado y parece haber detenido la mayor parte del spam. Supongo que un robot inteligente podría cosecharlo, pero no he tenido ningún problema.


66
Esto detiene el tipo más simple de recolección de spam (regex buscando cualquier texto que se parezca a una dirección de correo electrónico), y no tiene inconvenientes: es tan conveniente para el usuario final como el enlace explícito href = mailto: xxx @ aa.
Stephen C. Steel el

55
Esto funciona bastante bien porque muchos (¿la mayoría?) De los rastreadores / recolectores son increíblemente estúpidos.
Jacco el

43
De acuerdo con este estudio empírico de 2008 , la codificación URL fue la siguiente a la menos efectiva. Solo el texto plano era peor.
Fuhrmanator

16
Sé que esto es tarde, pero vale la pena señalar que la sugerencia aquí fue usar entidades HTML, que son diferentes a la codificación de URL. Según ese estudio, usar entidades para @ y períodos fue el segundo método más efectivo (los más efectivos fueron tres métodos vinculados para el primero que resultaron en 0 mensajes de spam). Sería interesante ver si esto todavía se mantiene casi 6 años después.
Bailey Parker

12
Me parece irónico que para proteger su correo electrónico tenga que ingresarlo en un formulario aleatorio y de aspecto sombrío en el sitio al que se vinculó. ¿Honeypotting, alguien? :)
srobinson

84

Personalmente, he renunciado a ocultar mi dirección de correo electrónico. Me resulta más fácil buscar mejores soluciones de filtrado de spam que preocuparme por ofuscar. Podrías pasar días tratando de encontrar la mejor manera de ofuscar tu dirección, y luego todo lo que se necesita es que una persona venda tu dirección a un spammer y todo ese trabajo fue inútil.


No importa cuán bueno sea su filtro de spam, habrá falsos negativos (los correos que lleguen a través de ellos no deberían). En última instancia, debe vivir con la dirección de correo electrónico, pero parece que este tipo de exposición innecesaria aumentaría la recurrencia del correo no deseado.
Brad Barker el

8
@Brad, en mi experiencia, este no ha sido el caso. Utilizo el correo alojado de Google para mis dominios y mi dirección de correo electrónico es extremadamente fácil de encontrar. He tenido 0 falsos negativos y 1 falso positivo desde que comencé a usarlo hace más de 14 meses. Recibo varios cientos de spam al día en mi carpeta de spam.
Rex M

8
Er, debo agregar: el spam no es un hombre del saco que se va a comer a sus hijos. Recibir un correo no deseado no es el fin del mundo. Haga clic en "informar spam" y continúe.
párpados

1
@Brad: Si no es necesario, no des tu dirección en absoluto. Si es necesario dar su dirección, prepárese para el spam. No puede facilitar que un humano le envíe un correo electrónico sin que también sea fácil para un spam bot hacerlo.
Chuck el

1
Acabo de publicar mi correo electrónico sin ofuscar también. Utilizo gmail, y el filtro de spam parece funcionar notablemente bien.
Asmor el

68

La solución actual aceptada es crear un formulario de contacto que permita a los usuarios enviarle un correo electrónico. Si recibe mucho spam de eso (no en mi sitio), entonces puede agregar un captcha por si acaso, y en ese momento estará lejos de la "fruta baja".

El hecho es que si proporciona un enlace en el que un usuario puede hacer clic para abrir su cliente de correo electrónico con su dirección en el campo Para:, entonces la computadora puede descifrar la dirección de correo electrónico de la página y así puede un bot de spam


2
Es decir, la lógica para enviar el correo electrónico debe escribirse en un código oculto del lado del servidor para que la dirección nunca se haga pública.
JoshJordan el

8
Si bien es una buena solución, técnicamente, es una solución que desalienta a muchos usuarios. Sólo digo'.
párpado

Tienes toda la razón, pero nunca he entendido por qué. Como máximo, está a un clic del formulario web, como lo estaría al menos con un cliente de correo electrónico. Lo único que agrega dificultad es el captcha opcional. Si un usuario no puede pasar por eso para contactarlo, ¿fue importante su mensaje?
JoshJordan el

15
Siempre me gusta cuando hay una opción para enviarte el mensaje. Lo único que me molesta de los formularios de contacto es que no deja ningún registro en mi propio sistema de correo electrónico. (Aunque un formulario que CC cualquier dirección de correo electrónico puede crear su propio conjunto de problemas.)
Sam Hasler

66
Tampoco hay indicios de que el formulario de correo electrónico realmente funcionó. He visto demasiados que se rompieron en silencio. Los correos electrónicos reales rebotan, al menos.
Brian Carper el

44

Usted mencionó que esto es para su sitio web personal. En mi sitio personal (por ejemplo, bobsomers.com) solo tengo un párrafo que dice esto:

La mejor manera de ponerse en contacto conmigo antes de que el nuevo sitio esté abierto es enviarme un correo electrónico. Mi dirección de correo electrónico es mi nombre en este sitio web. Si no puede entenderlo a partir de esa sugerencia, bueno, es posible que el correo electrónico le resulte más desafiante que descifrar mi dirección.

La gente parece ser capaz de resolverlo bien, ya que recibo correos electrónicos legítimos todo el tiempo. A veces las mejores soluciones no requieren escribir ningún código. :)


77
Este método también filtra a las personas con un coeficiente intelectual inferior a un cierto nivel: D
papa zulu

36

reCAPTCHA ofrece un sencillo servicio de ofuscación por correo electrónico . No necesita configurar una cuenta y puede comenzar a usarla de inmediato. Puede usar el servicio como enlace o como ventana emergente.

Después de que se resuelve el captcha, su dirección de correo electrónico aparece como href / mailto, de modo que los usuarios que han configurado sus clientes de correo electrónico pueden hacer clic en él / seguirlo para que funcionen con sus navegadores.


Esto es genial y funcionará el 99.9% del tiempo. Gracias por el enlace a. Fallará cuando el bot esté automatizando un navegador.
IEnumerator

9
No creo que la mayoría de los usuarios de la web se esfuercen por resolver un captcha solo para enviar un correo electrónico a alguien.
AndyM

77
Estoy con Andy en esto. CAPTCHA es un dolor, y reCAPTCHA es un dolor aún mayor que el promedio, ya que a menudo son demasiado difíciles de leer. Si las personas que le envían un correo electrónico es un punto de conversión (por ejemplo, que permite a los clientes consultar sobre servicios, pedir o solicitar un presupuesto), realmente desea que les sea lo más fácil posible.
Sylverdrag

8
El servicio ya no existe.
sorin

Google Mailhide ha sido descontinuado desde el 31 de marzo de 2018.
Sean

18

Una forma liviana de ofuscar el hrefanclaje es codificarlo en base64:

> btoa('mailto:email@example.com')
< "bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t"

Y luego incluirlo codificado:

<a href="javascript:window.location.href=atob('bWFpbHRvOmVtYWlsQGV4YW1wbGUuY29t')">E-Mail</a>

O dinámicamente del lado del servidor, por ejemplo, en PHP:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:email@example.com") ?>')">E-Mail</a>

En combinación con la reversión de cadenas, podría ser bastante ahorrador de spam:

<a href="javascript:window.location.href=atob('<?= base64_encode("mailto:email@example.com") ?>')" style="unicode-bidi: bidi-override; direction: rtl;"><?= strrev("email@example.com") ?></a>

14

Aparentemente usando CSS para cambiar la dirección de tu texto funciona bastante bien. Ese enlace también tiene una prueba de muchos otros métodos de ofuscación.

Lo que uses inevitablemente será derrotado. Su objetivo principal debe ser evitar molestar a sus usuarios.


44
¿Esto rellena copiar y pegar tal vez? IIRC
alex

77
Cuando la dirección se copia y pega, se mostrará al revés. Esto puede ser desagradable para los usuarios, si desea que sea lo más fácil posible contactarlo.
Christian Davén

10

No use ninguna técnica de ofuscación aquí porque probablemente sea el primer lugar donde los recolectores de correo electrónico buscarán descubrir cómo las personas ofuscan los correos electrónicos. Si tiene que tener su dirección de correo electrónico visible en el sitio, no solo copie textualmente el método de otra persona; ofuscarlo de una manera única que ningún otro sitio ha utilizado para que los recolectores no conozcan su método antes de que visiten su sitio.


8
Que recursivo.
Paul Tomblin el

Unniloct: la respuesta de Sam Hasler se aplica independientemente de cuál sea la respuesta principal. Al ir con la técnica de ofuscación más popular, vas con el objetivo más probable de la cosecha.
párpado

A menos que la respuesta principal sea no usar realmente la ofuscación :)
JoshJordan el

@JoshJordan: de acuerdo, en realidad voté por tu respuesta. Mi punto era que cualquier técnica de ofuscación popular eventualmente será notada por los spammers y escribirán código para desobuscarla.
Sam Hasler

2
Actualmente esta página es el resultado número 28 devuelto por google para [ofuscar la dirección de correo electrónico], aunque espero que eventualmente aumente más.
Sam Hasler

8

Puede hacer lo mismo que Google en Google Code (y Grupos). Muestra una parte del correo electrónico y una parte en la que se puede hacer clic ("..."). Al hacer clic en eso, indica que desea conocer el correo electrónico y se le solicita que complete un captcha. Luego, el correo electrónico (¿y otros?) Son visibles para usted.


8

el mío es realmente simple:

<h3 id="email">hello@gmail.com</h3><!-- add a fake email -->


    $(document).ready(function(){
//my email in reverse :)
            var s = 'moc.elibomajninbew@htiek';
            var e = s.split("").reverse().join("");
            $('#email').html('<a href="mailto:'+e+'">'+e+'</a>');
    });

9
pobre chico dueño de hello@gmail.com :)
duedl0r

2
No hay correos electrónicos en Gmail con 5 caracteres.
Paulo Ney

6

Utilizo la ofuscación de JavaScript, eche un vistazo a este, por ejemplo:

http://www.jottings.com/obfuscator/


2
-1: ¿Has mirado el código que genera? En realidad, no ofusca su dirección de correo electrónico si la incluye en el "texto del enlace", y desmiente su propósito con "mailto:". Peor aún, es una solución que requiere Javascript, que no se debe confiar en su contenido básico.
párpado

6

Un sitio web que mantengo utiliza un medio JavaScript un tanto simplista para (con suerte) mantener fuera los robots de spam.

Los enlaces de correo electrónico llaman a una función JS:

función sendEmail (nombre, dominio) {
    location.href = 'mailto:' + nombre + '@' + dominio;
}

Para asegurarse de que solo los usuarios que tienen JS habilitado puedan ver el enlace, escríbalos con esto:

función writeEmailLink (realName, name, domain) {
    document.write ('<a href = "javascript: sendEmail (\' '
      + nombre + '\', \ '' + dominio + '\') "> ');
    document.write (realName);
    document.write ('</a>');
}   

El uso de una función JS para escribir un enlace que llama a otro significa que hay dos capas de protección.


4

Como decía un póster anterior, también uso la ofuscación de JavaScript del sitio web de anotaciones .

La página web genera algunos JavaScript que se pueden mejorar. La mailto:cadena de texto es clara e identificable por los robots (lo que podría detectar esto y no ofuscar esta cadena), pero si uno ingresa en la página web jottings.com una dirección de correo electrónico del formulario en mailto:addr@site.tldlugar deaddr@site.tld y luego se elimina el texto.mailto:a partir del JavaScript que se genera, de repente uno tiene algo de JavaScript que no parece tener nada que ver con el correo electrónico, solo JavaScript aleatorio del que la web está llena. Uno puede mejorar esto aún más eliminando el texto del enlace: reemplacé el mío por una imagen de mi dirección de correo electrónico que está en una fuente bastante oscura. Entonces, en caso de que este método en jottings.com se vuelva popular, aleatoricé los nombres de las variables en el JavaScript de salida para dificultar que un robot detecte una instancia de código JavaScript generado por anotaciones.

Obviamente, algunas de estas mejoras podrían integrarse en el mecanismo de las anotaciones en sí, y dado que el código está abiertamente disponible, esto sería relativamente fácil.

Un ejemplo puede aclarar esto un poco más. Utilicé el Ofuscador Jottings en el enlace de arriba para ocultar mailto:foo@bar.com(tenga en cuenta que estoy engañando a la intención original del sitio web de anotaciones al ingresar la cadena en mailto:foo@bar.comlugar de foo@bar.com) con el texto "Enviarme correo electrónico", anotaciones convertidas en este Javascript:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature by Andrew Moulden, Site Engineering Ltd
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "3A1OTJ:rJJ@VAK.GJ3"
  key = "J0K94NR2SXLupIGqVwt8EZlhznemfaPjs7QvTB6iOyWYo3rAk5FHMdxCg1cDbU"
  shift=coded.length
  link=""
  for (i=0; i<coded.length; i++) {
    if (key.indexOf(coded.charAt(i))==-1) {
      ltr = coded.charAt(i)
      link += (ltr)
    }
    else { 
      ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
      link += (key.charAt(ltr))
    }
  }
document.write("<a href='mailto:"+link+"'>Send Me Email</a>")
}
//-->
</script><noscript>Sorry, you need Javascript on to email me.</noscript>

Después de recuperarlo, lo pego en un editor y:

  1. eliminar el mailto:
  2. reemplazar el texto del enlace con el puntero a una imagen de mi dirección de correo electrónico
  3. renombrar todas las variables
  4. reemplace la sección "noscript" con otro enlace a la imagen de la dirección de correo electrónico

Termino con esto:

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption kkeoy feature by Andrew Moulden, Site Engineering Ltd
// This kudzu is freeware provided these four comment lines remain intact
// A wizard to generate this kudzu is at http://www.jottings.com/obfuscator/
{ kudzu = "3A1OTJ:rJJ@VAK.GJ3"
  kkeoy = "J0K94NR2SXLupIGqVwt8EZlhznemfaPjs7QvTB6iOyWYo3rAk5FHMdxCg1cDbU"
  shift=kudzu.length
  klonk=""
  for (variter=0; variter<kudzu.length; variter++) {
    if (kkeoy.indexOf(kudzu.charAt(variter))==-1) {
      lutu = kudzu.charAt(variter)
      klonk += (lutu)
    }
    else {
      lutu = (kkeoy.indexOf(kudzu.charAt(variter))-shift+kkeoy.length) % kkeoy.length
      klonk += (kkeoy.charAt(lutu))
    }
  }
document.write("<a href='"+klonk+"'><img src='contactaddressimage.png' alt='Send Me Email' border='0' height='62' width='240'></a>")
}
//-->
</script>
<noscript>
    <img src="contactaddressimage.png" border="0" height="62" width="240">
    <font face="Arial" size="3"><br>&nbsp;</font></p>
</noscript>

3

No sé qué tan bien funcionaría esto. ¿No podría dejar su dirección de correo electrónico y hacer que se cargue usando una llamada AJAX una vez que la página haya terminado de cargarse? No estoy seguro de si los bots de spam pueden captar el HTML alterado o si son lo suficientemente inteligentes como para escuchar en otro tráfico HTTP para tratar de elegir direcciones de correo electrónico o si simplemente escanean la página tal como se recibe la primera vez.


Tiempo dedicado a implementar la implementación de carga de correo electrónico AJAX: 3 días. Tiempo ahorrado en spam que no tiene que eliminar: 17 minutos.

2

Un chico probó nueve formas diferentes de presentar una dirección de correo electrónico en una página y luego publicó los resultados en su blog.

Sus tres mejores formas fueron:

  1. Cambiar la dirección del código con CSS
  2. Uso de visualización de CSS: ninguno
  3. Cifrado ROT13

Advertencia: esto fue publicado hace dos años. Los robots de spam podrían haberse vuelto más inteligentes.


1

Si trabaja con PHP, puede obtener un script gratuito que lo haga automáticamente. Se llama "Private Daddy" y lo usamos para nuestro propio servicio de transmisión de audio en línea. Solo una línea de código y funciona de fábrica ... puedes obtenerlo aquí


Me gustaría saber por qué alguien rechazó esto. Sería útil explicarlo.
Yannis Dran

1

Otro enfoque podría ser el uso de un marco de JavaScript y vincular los datos / modelo a los elementos HTML. En el caso de AngularJS, los elementos HTML se escribirían como:

<a href="mailto:{{contactEmail}}"><span>{{contactEmail}}</span></a>

El enlace de interpolación {{datos}} utiliza una variable de alcance que contiene el valor real del correo electrónico. Además, también se podría usar un filtro que maneje la decodificación del correo electrónico de la siguiente manera:

<a href="mailto:{{contactEmail | decode}}"><span>{{contactEmail | decode}}</span></a>

Los beneficios están en la forma en que se escribe el HTML. La desventaja es que requiere soporte de secuencias de comandos que algunos pueden ser un no no.

Solo otro enfoque.


1

Usando JQuery, pero puede portarse fácilmente a JS simple si es necesario. Tomará el siguiente bloque HTML. Este ejemplo que proporcioné también es para tel:enlaces para llamadas telefónicas.

<a class="obfuscate" 
 href="mailto:archie...trajano...net">
 archie...trajano...net
</a>
<a class="obfuscate"
 href="tel:+One FourOneSix-EightFiveSix-SixSixFiveFive">
 FourOneSix-EightFiveSix-SixSixFiveFive
</a>

y conviértalo a los enlaces apropiados usando Javascript.

$ (". ofuscar"). each (function () {

$ (this) .html ($ (this) .html ()
.replace ("...", "@"). replace (/\.\.\./ g, ".")
.replace (/ One / g, "1")
.replace (/ Two / g, "2")
.replace (/ Three / g, "3")
.replace (/ Four / g, "4")
.replace (/ Five / g, "5")
.replace (/ Six / g, "6")
.replace (/ Seven / g, "7")
.replace (/ Ocho / g, "8")
.replace (/ Nine / g, "9")
.replace (/ Zero / g, "0"))

$ (this) .attr ("href", $ (this) .attr ("href")
.replace ("...", "@"). replace (/\.\.\./ g, ".")
.replace (/ One / g, "1")
.replace (/ Two / g, "2")
.replace (/ Three / g, "3")
.replace (/ Four / g, "4")
.replace (/ Five / g, "5")
.replace (/ Six / g, "6")
.replace (/ Seven / g, "7")
.replace (/ Ocho / g, "8")
.replace (/ Nine / g, "9")
.replace (/ Zero / g, "0"))

})

Lo documenté con más detalle aquí https://trajano.net/2017/01/obfuscating-mailto-links/

El algoritmo de de / ofuscación es bastante simple, por lo que no es demasiado exigente escribirlo (no es necesario realizar un análisis base64)


1

La solución de llamadas Ajax

Lo mejor es tener un formulario en el sitio web y no mostrar la dirección de correo electrónico, porque todos los robots son más inteligentes día tras día, pero si necesita mostrar la dirección de correo electrónico en el sitio web, puede hacerlo con una llamada ajax en su servidor, y mostrarlo al hacer clic.

HTML

<a class="obfmail" href="#" rel="info">click here to show email address</a>

o

<a class="obfmail" href="#" rel="info">
    <img src="img/click-to-show-email.jpg">
</a>

jQuery

$(document).one'click', '.obfmail', function(e) {
    e.preventDefault();
    a = $(this);
    addr = a.attr('rel');
    $.ajax({
        data: { 
            email: addr
        },
        url : "/a/getemail",
        type: "POST",
        dataType: 'json',
        success: function(data) {
            a.html(data.addr);
            a.attr('href', 'mailto:' + data.addr);
        }
    });
});

PHP

if($_POST['email']) {
    ...
    return json_encode(array(
        code     => '200',
        response => 'success',
        addr     => 'info@domain.ltd'
    ));
}

Para mayor seguridad, puede cambiar .onde .oneesta manera $(document).one('click', '.obfmail', function(e) {o incluso trabajar con un token generado por PHP que pasa a los datos en una llamada ajax, para aceptar solo una llamada de la función ajax de esta manera:

html: <a class="obfmail" href="#" rel="info" token="w3487ghdr6rc">

jquery:

...
addr = a.attr('rel');
tkn  = a.attr('token');
$.ajax({
    data: { 
        email: addr,
        token: tkn
    }, ...

.

También es posible codificar la dirección de correo electrónico devuelta o invertirla.

.

¡Funciona bien para los números de teléfono también!


0

Honestamente, su problema puede ser discutible si se pregunta si un mailto es realmente lo que quiere usar. Muchas personas que usan el correo web, por ejemplo, o que no tienen la configuración adecuada del cliente de correo en su navegador, no se beneficiarán de un mailto. Está exponiendo su dirección de correo electrónico para una función que no funcionará para una gran parte de sus usuarios.

Lo que podría hacer en su lugar es usar un formulario para enviar el correo electrónico detrás de escena para que la dirección de correo electrónico esté oculta y no tenga que preocuparse por los pobres tontos que no se beneficiarán de un correo electrónico.


0

Si dice en su sitio que "Mi dirección de correo electrónico es (mi nombre) @ (mi apellido) .com.", Y su nombre y apellido son bastante obvios, parece ser la mejor protección contra el correo no deseado vas a conseguir


¿No se permiten los paréntesis en los correos electrónicos completos? Parece que podría ser una dirección de correo electrónico válida. : p
Kzqai

1
Esa es otra razón por la cual los bots de spam perderán su bandeja de entrada. :-)
Dean J

0

Si alguien usa Rails, puede usar la actionview-encoded_mail_togema. ( https://github.com/reed/actionview-encoded_mail_to )

Hay algunas opciones:

: codificar: esta clave aceptará las cadenas "javascript" o "hexadecimal". Pasar "javascript" creará y codificará dinámicamente el enlace mailto y luego lo evaluará en el DOM de la página. Este método no mostrará el enlace en la página si el usuario tiene JavaScript deshabilitado. Pasar "hexadecimal" codificará hexadecimal email_address antes de generar el enlace mailto.

: replace_at: cuando no se proporciona el nombre del enlace, la dirección de correo electrónico se usa para la etiqueta del enlace. Puede usar esta opción para ofuscar la dirección de correo electrónico sustituyendo el signo @ con la cadena dada como valor.

: replace_dot: cuando no se proporciona el nombre del enlace, se utiliza email_address para la etiqueta del enlace. Puede usar esta opción para ofuscar la dirección de correo electrónico sustituyendo el. en el correo electrónico con la cadena dada como valor.


0
<!-- Multi-Email Obfuscator  -->
<!-- step 1: &#064; = @  -->
<!-- step 2: a scrap element  -->
<!-- step 3: ROT13 encode for .com  -->
info<!-- step 1 -->&#064;<!-- step 2 --><b style="display:none">my</b>domain<!-- step 3 --><script>document.write(".pbz".replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));</script>


0

Como esta solución no se menciona en ninguna parte, pero funciona bien para mí:

Hago esto:

  • cree un enlace mailto con correo electrónico falso. Me gusta admin@localhost.localdomain por razones obvias: Spammer puede enviar spam a su propia botnet cuando usa esta dirección sin marcar.

  • cifre la dirección de correo electrónico real y colóquela en un espacio oculto no relacionado pero localizable o el elemento que desee. Obviamente para ofuscar el correo electrónico y ocultarlo de la cosechadora. Dependiendo de la estructura de su proyecto, puede incluso querer ponerlo en una variable JS o Session

  • cree un controlador de clics para estos enlaces después de un segundo que descifre y escriba la dirección de correo electrónico correcta en el enlace falso de mailto para evitar los valores predeterminados. No creo que los rastreadores hagan clic en los enlaces de mailto, pero si lo hicieran, probablemente no esperarán un segundo, mientras que un ser humano tendría que ser extremadamente rápido para hacer clic en un enlace en el primer segundo después de la carga de la página.

Ahora tiene un enlace de mailto completamente funcional pero ofuscado, honeypoted y con garantía de tiempo.

Ejemplo de trabajo del archivo php:

<html>
<head>
<title>E-Mail Obfuscating</title>
</head>
<body>
<?php
$email = "example@email.org";
echo "<a class='emailLink' href='mailto:admin@localhost.localdomain' >Send me an e-mail!</a>"
    ."<span style='display:none' data-hash='" . base64_encode($email) . "' />";
?>
<script>
<!--
var emailLinks = document.getElementsByClassName("emailLink");
setTimeout(function() {
    for(var i=0; i <emailLinks.length; ++i){
        emailLinks[i].addEventListener("click", function(){
            let encodedEmail = this.nextSibling.getAttribute('data-hash');
            let decodedEmail = atob(encodedEmail);
            this.href = "mailto:" + decodedEmail;
            this.text = decodedEmail;
        });
    }
}, 1000);

-->
</script>
</body>
</html>

Que el código te acompañe.


0

¿Qué sucede si se crea un enlace "Contáctame" que apunta a un directorio protegido por contraseña? Por supuesto, tienes que dar el pase para acceder.

"Contáctame"> •••••••••••> contact / index.html

Una vez accedido, la página contact / index.html revela el correo electrónico, un mailto por ejemplo.


-1

Uso una función PHP para generar algunos javascript para enviar el correo electrónico al cargar la página. Tenga en cuenta que no necesita PHP para generar el JS en tiempo de ejecución, puede generar el JS una vez localmente y luego incluir el JS estático en su página.

También puede usar la función vinculada con este fragmento a continuación para ofuscar automáticamente las direcciones de correo electrónico en un determinado HTML (donde $ processContent es el HTML):

 $emailMatches = array();
 $matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);

 if($matchCount > 0) {
    $emailMatches = $emailMatches[0];

    foreach($emailMatches as $email) {
    $replacement = createJSMailLink($email);

    $processedContent = str_replace($email, createJSMailLink($email), $processedContent);
 }

donde definiste createJSMailLink ()?
Stelian

-2

Mira esto .

El 'Formulario Enkoder' cifrará su dirección de correo electrónico y convertirá el resultado a un JavaScript autoevaluado, ocultándolo de los robots de recolección de correo electrónico que rastrean la web en busca de direcciones expuestas. Los navegadores web mostrarán su dirección correctamente, pero será prácticamente indescifrable para los robots de recolección de correo electrónico.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.