El SPAM es uno de los problemas por la que todo usuario a perdido mucho tiempo, siempre nos envían correos no solicitados con publicidad. Una de las técnicas utilizadas por los Spammers para obtener dirección email es crear robots que van por todas las páginas leyendo y guardando las direcciones email publicadas. Basado en este método para obtener nuestras direcciones tenemos una regla para evitar el spam.
Nunca publicar directamente direcciones email en una página web.
Veamos algunas técnicas para mostrar direcciones de correo en nuestras páginas sin exponernos a un ataque de spam a estas cuentas de email.
Utilizando CSS: Método #1
Una técnica sencilla pero que da buenos resultados es escribir la dirección email al revés y luego con estilos mostrarlo en la dirección correcta utilizando la propiedad direction, por ejemplo:
<span style="direction:rtl; unicode-bidi:bidi-override;">moc.oinimod@otcatnoc</span>
Entonces creamos una función que se encargue de utilizar este método para mostrar los emails en nuestra web:
function hideEmail($mail) {
$mail = strrev($mail);
return "".$mail."";
}
Utilizando CSS: Método #2
Otró método consiste en agregarle un texto oculto dentro de la dirección email, de esta forma la dirección se visualizará correctamente pero si un spammer copia el email esta contendrá un dirección inválida. Este texto se oculta con estilos utilizando la propiedad display.
contacto@<span style="display:none">null</span>dominio.com
Luego creamos la función en PHP para ofuscar los emails:
function hideEmail($mail) {
$temp = explode("@", $mail);
return $temp[0]."@
".$temp[1];
}
Utilizando codificación ROT13
Este método consiste en codificar la dirección email con el algoritmo ROT13 que consiste en trasladar 13 posiciones las letras del alfabeto, dejando los caracteres no-alfabéticos sin modificar. Para ello escribimos el email codificado y lo mostramos correctamente con una función Javascript str_rot13.
<script type="text/javascript"> document.write(("pbagnpgb@qbzvavb.pbz").replace(/[a-z]/gi, function(s){ return String.fromCharCode(s.charCodeAt(0)+(s.toLowerCase()<'n'?13:-13)); })); </script>
Luego escribimos una función en PHP que se encargue de codificar la dirección email y que imprima el código javascript para decodificarlo:
function hideEmail($mail) { $temp = ""; return $temp; }
Puedes escoger cualquiera de estar técnicas y utilizarlo rápidamente para mostrar tu dirección de email sin temor a ataques de SPAM. Puedes descargar el código fuente con estas funciones asi como el ejemplo de uso para que puedan hacer sus pruebas.
[download id="45" autop="false"]
Mas Información
Comentarios Total 8 comentarios
Publicado: 09/08/2010 8:24 am
Excelente articulo!
Publicado: 09/08/2010 6:53 pm
muy bueno el post :)
Otra tecnica podria hacerse con algun generador de imagenes o algo parecido
Publicado: 11/08/2010 12:43 pm
Lo que yo uso es HTML Entities, que hace que funcione USABLEMENTE. (por ejemplo http://www.wbwip.com/wbw/emailencoder.html)
Y sino simplemente usar @ para la arroba y . para el punto
Los métodos 1 y 2 aquí puestos no sirven. Razón sencilla, si el usuario copia y pega, no tendrá la dirección, sino algo feo (caso uno dada vuelta, caso dos el NULL se copia)
El tercero obliga a tener JS activado.
Publicado: 18/09/2010 10:58 am
» ); document.write( addy_text38067 ); document.write( » ); //–> como convierto esto en un mail comun?? ayuda please, thanks
Publicado: 27/12/2011 6:58 pm
Otra funcion mas detallada es la siguiente, que la cree para un sitio web de articulos :
<?php
/** AntiRobots Spamers
* @author Alan Guevara
*/
function antiSpam($email){
$ret_email = ""; //Declarar Variable
$cant = strlen($email); //Cantidad de Caracteres
for($x=0;$x
Publicado: 27/12/2011 7:00 pm
Mejor dejo en un link el paste ok…. disculpasss…
http://paste2.org/p/1842970
Publicado: 22/02/2012 5:35 am
Gracias por el post! Muy interesante.
En mi caso opté por lo siguiente:
Es una solución que evita el uso del JavaScript y lo traslada todo al servidor. Permite al usuario copiarlo. Evidentemente, un robot con algo de programación podrá leerlo pero no los más simples, que seguro son los más habituales e indeseables.
Publicado: 22/02/2012 5:37 am
Perdón, no leí bien. El código es el siguiente:
<span style="direction:rtl;unicode-bidi: bidi-override"> <?php echo strrev('correo@correo.com')?></span>