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:[email protected]">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.
fuente
Respuestas:
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.
fuente
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.
fuente
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
fuente
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 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. :)
fuente
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.
fuente
Una forma liviana de ofuscar el
href
anclaje es codificarlo en base64:Y luego incluirlo codificado:
O dinámicamente del lado del servidor, por ejemplo, en PHP:
En combinación con la reversión de cadenas, podría ser bastante ahorrador de spam:
fuente
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.
fuente
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.
fuente
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.
fuente
el mío es realmente simple:
fuente
Utilizo la ofuscación de JavaScript, eche un vistazo a este, por ejemplo:
http://www.jottings.com/obfuscator/
fuente
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:
Para asegurarse de que solo los usuarios que tienen JS habilitado puedan ver el enlace, escríbalos con esto:
El uso de una función JS para escribir un enlace que llama a otro significa que hay dos capas de protección.
fuente
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 enmailto:[email protected]
lugar de[email protected]
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:[email protected]
(tenga en cuenta que estoy engañando a la intención original del sitio web de anotaciones al ingresar la cadena enmailto:[email protected]
lugar de[email protected]
) con el texto "Enviarme correo electrónico", anotaciones convertidas en este Javascript:Después de recuperarlo, lo pego en un editor y:
mailto:
Termino con esto:
fuente
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.
fuente
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:
Advertencia: esto fue publicado hace dos años. Los robots de spam podrían haberse vuelto más inteligentes.
fuente
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í
fuente
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:
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:
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.
fuente
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.y conviértalo a los enlaces apropiados usando Javascript.
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)
fuente
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
o
jQuery
PHP
Para mayor seguridad, puede cambiar
.on
de.one
esta 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:
.
.
fuente
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.
fuente
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
fuente
Si alguien usa Rails, puede usar la
actionview-encoded_mail_to
gema. ( https://github.com/reed/actionview-encoded_mail_to )Hay algunas opciones:
fuente
fuente
Cloudflare ahora ofrece servicio gratuito de ofuscación por correo electrónico . Esta podría ser una opción si usa Cloudlfare.
fuente
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 [email protected] 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:
Que el código te acompañe.
fuente
¿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.
fuente
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):
fuente
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.
fuente