En mi página de inicio, estoy usando este método para ocultar mi correo electrónico de los bots de spam:
<a href="admin [at] example.com"
rel="nofollow"
onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a>
¿Qué piensa usted al respecto? ¿Es efectivo? ¿Qué otros métodos conoces o usas?
this.href.replace(/x/g,'')
, la tercera parte codificada en hexadecimal, etc. dirección de correo electrónico.Respuestas:
Este es el método que utilicé, con una inclusión del lado del servidor, por ejemplo,
<!--#include file="emailObfuscator.include" -->
dondeemailObfuscator.include
contiene lo siguiente:Para incluir una dirección, uso JavaScript:
Debido a que he recibido correos electrónicos a través de Gmail desde 2005, el spam no es un problema. Entonces, no puedo hablar de cuán efectivo es este método. Es posible que desee leer este estudio (aunque es antiguo) que produjo este gráfico:
fuente
emailObfuscator.include
? ¿No sería lo mismo que escribirlo en .html simple? (¿quizás es solo un ejemplo?) Además, ¿por qué usa comentarios html<!--
-->
dentro del script? Y finalmente, ¿por qué una de sus<script>
etiquetas está en minúsculas mientras que otras son mayúsculas<SCRIPT>
? ¿Estos métodos ayudan a confundir a los bots o algo así?Trabajando con contenido y attr en CSS:
Cuando javascript está deshabilitado, solo el evento click no funcionará, el correo electrónico todavía se muestra.
Otro enfoque interesante (al menos sin un evento de clic) sería utilizar la marca de derecha a izquierda para anular la dirección de escritura. más sobre esto: https://en.wikipedia.org/wiki/Right-to-left_mark
fuente
Echa un vistazo de esta manera , bastante inteligente y usando CSS.
CSS
HTML
El CSS anterior anulará la dirección de lectura y presentará el texto al usuario en el orden correcto.
Espero eso ayude
Salud
fuente
Tengo una opinión completamente diferente sobre esto. Yo uso MailHide para esto.
MailHide es un sistema de Google mediante el cual el usuario debe completar una prueba reCAPTCHA para luego revelarles el correo electrónico.
fuente
No fue mi idea originalmente, pero no puedo encontrar al autor:
Agregue tantas x como desee. Funciona perfectamente para leer, copiar y pegar, y no puede ser leído por un bot.
fuente
Creo que el único método infalible que puede tener es crear una página de contacto que es un formulario que se envía a un script que se envía a su dirección de correo electrónico. De esa manera, su dirección nunca está expuesta al público en absoluto. Esto puede ser indeseable por alguna razón, pero creo que es una solución bastante buena. A menudo me molesta cuando me veo obligado a copiar / pegar la dirección de correo electrónico de alguien de su sitio a mi cliente de correo y enviarle un mensaje; Prefiero hacerlo a través de un formulario en su sitio. Además, este enfoque le permite recibir comentarios anónimos, etc. Solo asegúrese de proteger su formulario utilizando algún tipo de esquema anti-bot, como un captcha. Hay muchos de ellos discutidos aquí en SO.
fuente
Consulte ¿ Cómo hacer que las direcciones de correo electrónico estén a salvo de los robots en una página web?
Me gusta la forma en que Facebook y otros muestran una imagen de su dirección de correo electrónico.
También he usado The Enkoder en el pasado, ¡pensé que era muy bueno para ser honesto!
fuente
Si tiene soporte para php, puede hacer algo como esto:
Y el scriptname.php:
fuente
Sé que mi respuesta no será del agrado de muchos, pero tenga en cuenta los puntos descritos aquí antes de rechazarla.
Cualquier cosa fácilmente legible por máquina será fácilmente legible por máquina por los spammers. A pesar de que sus acciones nos parecen estúpidas, no son personas estúpidas. Son innovadores e ingeniosos. No solo usan bots para recolectar correos electrónicos, tienen una gran cantidad de métodos a su disposición y, además de eso, simplemente pagan buenas listas nuevas de correos electrónicos. Lo que significa es que tienen miles de hackers de sombrero negro en todo el mundo para ejecutar sus trabajos. Gente lista para codificar malware que raspa las pantallas de los navegadores de otras personas, lo que eventualmente hace que cualquier método que intentes lograr sea inútil. Este hilo ya ha sido leído por más de 10 personas y se están riendo de nosotros. Algunos de ellos incluso pueden aburrirse hasta las lágrimas para descubrir que no podemos presentarles un nuevo desafío.
Tenga en cuenta que eventualmente no está tratando de ahorrar su tiempo, sino el tiempo de los demás. Debido a esto, considere pasar más tiempo aquí. No hay una bala mágica fácil de ejecutar que funcione. Si trabaja en una empresa que publica correos electrónicos de 100 personas en el sitio y puede reducir 1 correo no deseado por día por persona, estamos hablando de 36500 correos electrónicos no deseados al año. Si eliminar dicho correo electrónico tarda 5 segundos en promedio, estamos hablando de 50 horas de trabajo al año. Sin mencionar la cantidad reducida de molestia. Entonces, ¿por qué no pasar unas horas en esto?
No solo usted y las personas que reciben el correo electrónico consideran el tiempo como un activo. Por lo tanto, debe encontrar una manera de ofuscar las direcciones de correo electrónico de tal manera que no valga la pena descifrarlas. Si utiliza algún método ampliamente utilizado para ofuscar los correos electrónicos, realmente vale la pena descifrarlos. Como resultado, el cracker tendrá en sus manos miles, si no decenas o cientos de miles de correos electrónicos nuevos. Y para ellos obtendrán dinero.
Entonces, adelante y codifique su propio método. Este es un caso raro en el que reinventar la rueda realmente vale la pena. Utilice un método que no sea legible por máquina y que preferiblemente requiera cierta interacción del usuario sin sacrificar la experiencia del usuario.
Pasé unos 20 minutos para descifrar un ejemplo de lo que quiero decir. En el ejemplo, usé KnockoutJS simplemente porque me gusta y sé que probablemente no lo usarás tú mismo. Pero es irrelevante de todos modos. Es una solución personalizada que no se usa ampliamente. Romperlo no representará una recompensa por hacerlo, ya que el método de hacerlo solo funcionaría en una sola página en Internet.
Aquí está el violín: http://jsfiddle.net/hzaw6/
El siguiente código no pretende ser un ejemplo de buen código. Pero solo una muestra rápida de código que es muy difícil de comprender para la máquina, incluso manejamos correos electrónicos aquí. E incluso si se pudiera hacer, no valdrá la pena ejecutarlo a gran escala.
Y sí, sé que no funciona en IE = lte8 debido a 'No se pueden obtener atributos de propiedad' de referencia indefinida o nula ', pero simplemente no me importa porque es solo una demostración del método, no una implementación real, y no está destinado a ser utilizado en la producción tal como es. Siéntase libre de codificar el suyo, que es más fresco, técnicamente más sólido, etc.
Ah, y nunca jamás nombre algo correo o correo electrónico en html o javascript. Es demasiado fácil raspar el DOM y el objeto de ventana para cualquier cosa llamada correo o correo electrónico y verificar si contiene algo que coincida con un correo electrónico. Esta es la razón por la que no desea ninguna variable que contenga correo electrónico en su forma completa y también es la razón por la que desea que el usuario interactúe con la página antes de asignar dichas variables. Si su modelo de objeto javascript contiene direcciones de correo electrónico en estado preparado para DOM, las está exponiendo a los spammers.
El HTML:
El JS
fuente
Uno de mis métodos favoritos es ofuscar la dirección de correo electrónico usando php, un ejemplo clásico es convertir los caracteres a valores HEX de esta manera:
Y luego, en mi marcado, simplemente lo llamaré de la siguiente manera:
Luego examine su fuente, ¡se sorprenderá gratamente!
fuente
Puede intentar ocultar caracteres usando entidades html en hexa (por ejemplo: & # x40 para @). Esta es una solución conveniente, ya que un navegador correcto la traducirá y puede tener un enlace normal. El inconveniente es que un bot puede traducirlo teóricamente, pero es un poco inusual. Lo uso para proteger mi correo electrónico en mi blog.
Otra solución es usar javascript para ensamblar parte de la dirección y decodificar sobre la marcha la dirección. El inconveniente es que un navegador con JavaScript deshabilitado no mostrará su dirección.
La solución más efectiva es usar una imagen , pero es difícil para el usuario tener que copiar la dirección a mano.
Su solución es bastante buena , ya que solo agrega un inconveniente (escribiendo manualmente la @) solo para usuarios que tienen JavaScript deshabilitado. También puede estar más seguro con:
fuente
Spambots no interpretará esto, porque es un método menos conocido :)
Primero, defina el css:
Ahora, donde quiera mostrar su correo electrónico, simplemente inserte el siguiente HTML:
Y tada!
fuente
Utilizo una combinación muy simple de CSS y jQuery que muestra la dirección de correo electrónico correctamente al usuario y también funciona cuando se hace clic o se desplaza el ancla:
HTML:
CSS:
jQuery:
Aquí hay un ejemplo de trabajo.
fuente
! - Agregando esto como referencia, no sé qué tan desactualizada podría estar la información, pero informa sobre algunas soluciones simples que no requieren el uso de ningún script
Después de buscar esto, encontré esta página pero también estas páginas:
http://nadeausoftware.com/articles/2007/05/stop_spammer_email_harvesters_obfuscating_email_addresses
intente invertir la dirección de correo electrónico
Ejemplo HTML simple:
El mismo efecto usando CSS
Combinar esto con cualquiera de los métodos mencionados anteriormente puede incluso hacerlo más efectivo
fuente
Una solución fácil es usar entidades HTML en lugar de caracteres reales. Por ejemplo, el "[email protected]" se convertirá en:
fuente
Aquí está mi versión de trabajo:
Cree en algún lugar un contenedor con un texto alternativo:
Y agregue en la parte inferior del DOM (wrt el renderizado) el siguiente fragmento:
Agrega el hipervínculo generado al contenedor especificado:
Además aquí hay una versión minificada:
fuente
El mejor método para ocultar las direcciones de correo electrónico solo es bueno hasta que el programador del bot descubra esta "codificación" e implemente un algoritmo de descifrado.
La opción de JavaScript no funcionará mucho, porque hay muchos rastreadores que interpretan JavaScript.
No hay respuesta, en mi humilde opinión.
fuente
Probablemente hay bots que reconocen el
[at]
y otros disfraces como@
símbolo. Entonces este no es un método realmente efectivo.Claro que podría usar algunas codificaciones como codificación URL o referencias de caracteres HTML (o ambas):
Pero como es legal usarlos, cada navegador / cliente de correo electrónico también debe manejar estas codificaciones.
fuente
Soy fanático de SpamSpan : está ofuscado, pero aún puede descifrarse si JS está desactivado. Parece que también funciona, aunque solo lo he estado usando durante aproximadamente un año en un sitio web de bajo tráfico.
También hay un módulo para que Drupal convierta automáticamente los correos electrónicos en SpamSpans, si lo necesita.
fuente
¿Funciona si hago clic derecho en el enlace y elijo "copiar URL"? Si no es así, no es una situación ideal (rara vez hago clic en un enlace mailto, prefiero copiar la dirección de correo electrónico y pegarla en mi aplicación de correo o donde sea que la necesite en un momento específico).
Solía ser bastante paranoico protegiendo mi dirección de correo electrónico en línea (UseNet, web y similares), pero en estos días sospecho que en realidad se generan más "posibles objetivos para el correo no deseado" haciendo coincidir las partes locales con los dominios mediante programación. Baso esto en, en ocasiones, haber revisado los registros de mi servidor de correo. Tiende a haber bastantes intentos de entrega a direcciones no existentes (incluidas versiones truncadas de cebo de spam que colgué en UseNet a fines de los años 90, cuando el raspado de direcciones era muy frecuente).
fuente
Después de usar tantas técnicas, encontré una manera fácil y muy amigable, los bots buscan @ Símbolo y recientemente buscan [en] su variación, así que uso 2 técnicas
y la imagen alt será alt = "@" para que el bot encuentre una imagen y cualquier humano la vea como una dirección normal, así que si la copia, copiará el correo electrónico y el trabajo será don, por lo que el código será
fuente
Hay un script PHP de licencia abierta que genera javascript que codifica el correo: http://www.maurits.vdschee.nl/php_hide_email/ . Luego puede llamar fácilmente a la función php con el correo específico como argumento.
fuente
Primero, me aseguraría de que la dirección de correo electrónico solo se muestre cuando tenga habilitado JavaScript. De esta manera, no hay texto sin formato que se pueda leer sin javascript.
En segundo lugar, una forma de implementar una función segura es mantenerse alejado de la
<button>
etiqueta. Esta etiqueta necesita una inserción de texto entre las etiquetas, lo que la hace legible por computadora. En su lugar, intente<input type="button">
con un controlador de JavaScript para un onClick. Luego, use todas las técnicas mencionadas por otros para implementar una notación de correo electrónico segura.Otra opción es tener un botón con "Haga clic para ver la dirección de correo electrónico". Una vez que se hace clic, esto se convierte en un correo electrónico codificado (los caracteres en los códigos HTML). En otro clic, esto redirige a la función 'mailto: email'
Una versión sin codificar de la última idea, con direcciones de correo electrónico seleccionables y no seleccionables:
Vea si esto es algo que desearía y combínelo con las ideas de otros. Nunca puedes estar muy seguro.
fuente
Y mi funcion. Lo he creado mirando las respuestas colocadas en este tema.
Utiliza dos métodos: directorio de derecha a izquierda y colocación de JavaScript.
fuente
Opción 1: dividir la dirección de correo electrónico en varias partes y crear una matriz en JavaScript a partir de estas partes. A continuación, una estas partes en el orden correcto y use la propiedad .innerHTML para agregar la dirección de correo electrónico a la página web.
Opción 2: usar imagen en lugar de texto de correo electrónico
Sitio web del creador de imagen a partir del texto: http://www.chxo.com/labelgen/
Opción 3: podemos usar AT en lugar de "@" y DOT en lugar de "."
es decir:
fuente
No me gusta que se mezclen JavaScript y HTML, por eso uso esta solución. Funciona bien para mí, por ahora.
Idea : podría hacerlo más complicado proporcionando información cifrada en los
data
atributos y descifrarla dentro del JS. Esto se hace simplemente reemplazando letras o simplemente invirtiéndolas.HTML :
JS :
Pruébalo: http://jsfiddle.net/x6g9L817/
fuente
¿Qué pasa con HTML_CHARACTER ?:
salidas
fuente
Aquí hay una solución jquery simple para este problema:
fuente
Me gusta más la respuesta de ofaurax, pero modificaría esto para un correo electrónico un poco más oculto:
fuente
Solo tengo que dar otra respuesta. Se me ocurrió algo divertido para jugar.
Descubrí que en muchas tablas de caracteres comunes, las letras @ y az reaparecen más de una vez. Puede asignar los caracteres originales a las nuevas asignaciones y hacer que sea más difícil para los robots de spam descubrir qué es el correo electrónico.
Si recorre la cadena y obtiene el código de caracteres de una letra, luego agregue 65248 y cree una entidad html basada en el número, obtendrá una dirección de correo electrónico legible para humanos.
Aquí hay un violín que funciona: http://jsfiddle.net/EhtSC/8/
Puede mejorar este enfoque creando un conjunto más completo de asignaciones entre caracteres que se vean iguales. Pero si copia / pega el correo electrónico en el bloc de notas, por ejemplo, obtendrá muchos cuadros.
Para superar algunos de los problemas de la experiencia del usuario, creé el correo electrónico como enlace. Cuando haces clic en él, vuelve a asignar los personajes a sus originales.
Para mejorar esto, puede crear asignaciones de caracteres más complejas si lo desea. Si puede encontrar varios caracteres que se pueden usar, por ejemplo, en lugar de 'a', ¿por qué no asignarlos al azar?
Probablemente no sea el enfoque más seguro, pero me divertí mucho jugando con él: D
fuente