Seguridad

Ocultar a los spambots las direcciones de email de tu sitio web

[titulo]Codificar los emails para evitar spam[/titulo]

Existe una gigantesca industria entorno a los datos personales en la red, y el email es uno de los más valorados y sencillos de obtener.

Un email supone la puerta de acceso más directa hacia el potencial cliente, ya sea a través de publicidad (mail marketing), prácticas engañosas (phishing) o contactos a puerta fría.

Por ello, hay miles de spambots que rastrean incansablemente en busca del famoso simbolito «@», el cual marcará, con gran probabilidad, la presencia de un correo electrónico.

El email es pues el dato por excelencia que se nos pide para realizar cualquier transacción y, mágicamente, a los pocos días de habernos creado una nueva cuenta, comenzará a inundarse de correo no deseado, aunque no lo hayamos facilitado a nadie.

Esta guía pretende ayudar a webmasters, desarrolladores y propietarios web, que obligados por la legislación vigente han de poner sus emails en los textos legales de su site, a minimizar el enorme daño que puede causarles la avalancha de correo no deseado.

Para ello, os mostraremos una serie de técnicas que oculten o disfracen tu email a los crawlers, pero que a su vez permitan que cualquier ser humano pueda leerlos sin dificultad.

¡Llega Carnaval a Loopeando.com!

 

[resumen]
  1. Codificar los emails: ASCII y hexadecimal
  2. Utilizar imágenes
  3. Camuflar vía CSS
  4. JavaScript
  5. Redireccionar con PHP
  6. Formulario Web
[/resumen]

 

[titulo]Codificar los emails: ASCII y hexadecimal[/titulo]

Si la mayor parte de los spambots parsean las webs en busca del «@», parece lógico que una solución sea disfrazar ese @.

Para ello existe una técnica muy común llamada codificación de caracteres. Es decir, lo que se hace en realidad es sustituir los caracteres que componen en correo electrónico, por su equivalente en ASCII, hexadecimal, binario…

De esta forma, los navegadores interpretarán esta codificación y mostrarán a tu usuario unos caracteres totalmente normales y legibles, pero de cara a los spambots, únicamente habrá cifrado.

Ejemplo de integración directa:

<a href="mailto:codifica@loopeando.com">codifica@loopeando.com</a>

Ejemplo codificado:

<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#111;&#100;&#105;&#102;&#105;&#99;&#97;&#64;&#108;&#111;&#111;&#112;&#101;&#97;&#110;&#100;&#111;&#46;&#99;&#111;&#109;">&#99;&#111;&#100;&#105;&#102;&#105;&#99;&#97;&#64;&#108;&#111;&#111;&#112;&#101;&#97;&#110;&#100;&#111;&#46;&#99;&#111;&#109;</a>

 

Podéis codificar vuestros emails en:

Ventajas de este método
  • Es la solución más rápida y sencilla.
  • Aunque ha perdido bastante efectividad, sigue manteniendo a raya a la mayor parte de los spambots.
Desventajas de este método
  • Muchos spambots están empezando a incorporar las versiones cifradas del @ para burlar este método.

 

[titulo]Utilizar imágenes[/titulo]

Si en lugar de teclear nuestra dirección de email, ponemos una imagen que la contenga, al no aparecer el «@» en el código, estaremos protegiéndonos del spam.

Ejemplo:

Ventajas de este método
  • Aunque los spambots más avanzados pueden utilizar OCR (Optical Character Recognition) y leer su contenido, este sencillo método parará a la mayor parte.
Desventajas de este método
  • Las personas con visibilidad reducida utilizan un software que lee los Alt de las imágenes (donde usualmente deberíamos describirla). Sin embargo, en este caso no podemos poner la dirección de email en el alt, pues no habríamos conseguido nada. Así que estas personas no podrán conocer nuestro correo.
  • Al ser una imagen estática que no podemos vincular a un mailto, quienes quieran escribirnos tendrán que escribir a mano nuestra dirección.

 

[titulo]Camuflar vía CSS[/titulo]

¿Os habéis fijado que en las ambulancias las letras que utilizan en la pintura del coche están del revés? La idea es que como el espejo de un coche le da la vuelta a la imagen, tú desde tu retrovisor lo leas del derecho.

Pues bien, ese mismo principio es el empleado en este truco:

  1. Escribes el email a camuflar del revés. Por ejemplo, si el email es codifica@loopeando.com, escribimos moc.odnaepool@acifidoc
  2. Utilizamos el parámetro [codigo]bidi-override[/codigo] de la propiedad CSS [codigo]unicode-bidi[/codigo].

Quedando algo como:

<style>
.backwards{
     unicode-bidi:bidi-override; 
     direction: rtl;
} 
</style> 

<span class="backwards">moc.odnaepool@acifidoc</span>

El resultado es que el usuario verá el email como a través del espejo (correctamente), pero los spammerbots lo verán sin la propiedad CSS (del revés).

 

Ventajas de este método
  • Sencillo de aplicar y de uso poco extendido. Por lo tanto, es extremadamente difícil que ningún spambot lo detecte. Cosa que cambiaría si todos empezamos a usar este método.
Desventajas de este método
  • No puedes aplicarle un mailto, por lo que tiene los mismos inconvenientes que el método de sustitución por imagen.
  • Si alguien intenta copiar y pegar este email, lo copiará del revés y no le funcionará.

 

[titulo]Ocultar email con JavaScript[/titulo]

Hay muchos caminos por los que conseguir nuestro objetivo en JS, pero todos se basan en el principio de las anteriores: Ocultar o separar el @ del resto de componentes.

Ejemplo de función básica:

<script>
function ponemail (){
     document.write("codifica" + "@" + "loopeando.com"); 
}
</script>

Esta función permitirá que cada vez que la llamemos ([codigo]ponemail()[/codigo]), nos ponga el email completo.  Sin embargo, de cara a los spambots, el @ está sólo; Sin nombre ni dominio.

 

Otro ejemplo:

<script>
function ponemail(){  
     var user = "codifica"; 
     var host = "loopeando.com"; 
     var link = user + "@" + host; 
     document.write("<a hre" + "f=ma" + "ilto:" + user + "@" + host + ">" + link + "</a>");  

}
</script>

Misma idea que el anterior pero:

  • Separamos todavía más el usuario y dominio situándolos en variables que luego rearmamos.
  • El email insertado tendrá además enlace con mailto.

 

Y si no queremos/podemos llamar funciones, lo mismo pero en línea:

<a href="#" onclick="JavaScript:window.location='mailto:'+'codifica'+'@'+'loopeando'+'.com'" >Envíame un email</a>

 

[titulo]Redireccionar con PHP[/titulo]

Otra estrategia es aprovechar que PHP se ejecuta del lado del servidor, y dejarlo que sea él el encargado de agregar el email en nuestra web.

Algo tan sencillo como:

<p>Puede contactarnos haciendo clic en el siguiente enlace:
  <a href="redireccion-mailto.php">E-Mail</a>.
</p>

Que redireccionaría a un archivo php llamado redireccion-mailto.php cuyo contenido sería:

<?php
     header("Location: mailto:codifica@loopeando.com"); 
?>

 

Ventajas de este método
  • Sencillo de aplicar e imposible de rastrear por spambots actuales o futuros.
Desventajas de este método
  • Al depender de un mailto, si la persona que realiza clic no tiene asociado/configurado un gestor de correo, no podrá enviarte el email.

 

[titulo]Formulario web[/titulo]

Si no queremos que nos envíen spam a nuestro correo electrónico, parece lógico que la opción más sencilla sea no ponerlo.

Un formulario web nos permite controlar todo el proceso, estructurar el correo con los campos que deseemos, es muy sencillo de instalar, fácil de usar por ambas partes y no requiere software de terceros (salvo que nos decidamos por la vía rápida y usemos un plugin tipo MailChimp).

Pero no es oro todo lo que reluce…

 

Ventajas de este método
  • Al no poner el email, estaremos a salvo de los spambots que rastrean correos electrónicos.
Desventajas de este método
  • Sin embargo, eso nos expone a otro tipo de robots spamers: Los que rastrean formularios de contacto. Así que habrá que protegerlo a su vez con un antispamer como Humanizer o reCAPTCHA.

 

Y hasta aquí nuestra lista de ideas para protegernos del spam. Si lo deseáis, podéis compartir las vuestras en los comentarios.

 

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

Escribir comentario

Haz clic aquí para dejar tu comentario