Los robots de spam descargan las páginas web para buscar y capturar direcciones de correo electrónico dentro del código fuente de la página, por lo que si tenemos un enlace del tipo “mailto:”, los robots de spam encontrarán facilmente la dirección de correo y la utilizarán para sus propositos.

Existen varias formas de proteger las direcciones de correo en una página web, una buena forma es codificarlas de forma que no aparezcan en el código fuente de la página, de esta forma, los usuarios de nuestra web pueden seguir usando los enlaces y codificamos el enlace sin perder accesibilidad.

Creamos una función a la que pasamos un valor, a continuación vamos a usar tres funciones de PHP.

bin2hex()

Esta función recibe un parámetro (string) y convierte los datos binarios en su representación hexadecimal, devolviendo una cadena ASCII que contiene la representación hexadecimal, la conversión se realiza byte a byte.

chunk_split()

Esta función recibe un parámetro (string) y lo divide en una cadena separada por caracteres que indicamos en un segundo parametro, por ultimo, añade un string que indicamos en un tercer parametro entre las partes en las que se ha dividido la cadena.

substr()

Esta función devuelve una parte de una cadena especificada, en el lugar especificado, puede recibir tres parametros:

Una cadena que especifica la parte de la cadena en la que se debe devolver un valor.

Una posición que especifica en que parte de la cadena se debe devolver un valor (número positivo: Comienza en la posición especificada, número negativo: Comienza en la posición especificada desde el final de la cadena, 0: Comienza en el primer carácter de la cadena).

Una posición (opcional) que especifica la longitud de la cadena devuelta, por defecto el valor predeterminado es el final de la cadena (número positivo: La longitud a devolver a partir del parámetro de inicio, número negativo: La longitud a devolver desde el final de la cadena).

El código de la función:

function proteger_mail_spam($direccion_correo) {
	$correo_encriptado = bin2hex("$direccion_correo");
	$correo_encriptado = chunk_split($correo_encriptado, 2, '%');
	$correo_encriptado = '%' . substr($correo_encriptado, 0, strlen($correo_encriptado) - 1);
	return $correo_encriptado; 
}

Una vez creada la función creamos las variables y hacemos un “echo” que devolverá el correo.

$correo_real ='tunombre@tudominio.com';
$email = proteger_mail_spam($correo_real);
echo '<a href="mailto:'.$email.'">Contactar</a>';

Esto es lo que verán los Spambots

<a href="mailto:%74%75%6e%6f%6d%62%72%65%40%74%75%64%6f%6d%69%6e%69%6f%2e%63%6f%6d">Contactar</a>

Y esto la dirección desencriptada a la que serán enviados los usuarios de tu web

<a href="mailto:tunombre@tudominio.com">Contactar</a>

Puedes ver el código de este archivo en mi cuenta de GitHub.

Valoraciones


Sé el primero en valorar

* Tu valoración puede tardar hasta 72 horas en publicarse.

He leido y acepto el Aviso legal y condiciones de uso

Utilizamos cookies propias y de terceros para personalizar el contenido y los anuncios, ofrecer funciones de medios sociales y analizar el tráfico. Además compartimos información sobre el uso que haces de nuestra web con nuestros partners de medios sociales, de publicidad y de análisis web. Si continúas navegando estás dando tu consentimiento para la aceptación de nuestra Política de cookies.

ACEPTAR
Aviso de cookies