Enmascarar mails para evitar SPAM

Publicado en Programación el 7 de May de 2009 por Manel Pérez Mata
Tags: , , ,

Aquí os dejo una forma sencilla de enmascarar un mail en una web de manera que, por pantalla mostrará el texto, sin embargo, si miramos el código fuente (o lo que es lo mismo, un bot visita nuestra web en busca de direcciones de correo electrónico) no encontraremos este texto.

El “truco” está en transformar cada uno de los caracteres a unicode utilizando esta función que me he entretenido en programar:

  1. function convertCP2HexNCR($textString) {
  2.     $outputString   = "";
  3.     $CPstring       = "";
  4.  
  5.     for ($i = 0; $i < strlen($textString); $i++) {
  6.         $b = ord($textString[$i]);
  7.         $CPstring .= dechex($b). ‘ ‘;
  8.     }
  9.     $textString = str_replace(‘/^\s+/’, , $CPstring);
  10.  
  11.     if (strlen($textString) == 0) { return ""; }
  12.  
  13.     $textString = str_replace(, ‘ ‘,$textString);
  14.     $listArray = explode(‘ ‘, $textString);
  15.  
  16.     for ($i = 0; $i < count($listArray); $i++ ) {
  17.         $n = $listArray[$i];
  18.         $outputString .= .$n.‘;’;
  19.     }
  20.  
  21.     return $outputString;
  22. }
  23.  
  24. echo convertCP2HexNCR("mehanhechoclick@yhacecosquillitas.com");

Si ejecutamos este código PHP desde un navegador, veremos que por pantalla aparece el email, sin embargo, al hacer Ctr+U (en Firefox) o lo que es lo mismo, ver código fuente, veremos que el resultado es muy diferente, algo como:

&#x6d;&#x65;&#x68;&#x61;&#x6e;&#x68;&#x65;&#x63;&#x68;&#x6f;&#x63;&#x6c;&#x69;...

En cualquier caso, es importante remarcar que no es un método infalible ya que, como os comentaba, lo que realmente estamos haciendo es transforar el texto a unicode, por lo tanto, un bot programado para tal efecto, sería capaz de detectar y recodificar el email, pero esos casos tienden a 0.

Compártelo!! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Meneame
  • BarraPunto
  • Technorati
  • Google Bookmarks
  • Facebook
  • LinkedIn
  • del.icio.us
  • Digg
  • Reddit
  • Live-MSN
  • MySpace
  • TwitThis
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4.00 out of 5)
Loading ... Loading ...

Leave a Reply