24

May


AntiSpam para formulario de correo

Autor: David

Quien no está harto de recibir Spam en la bandeja de entrada. Está claro que el Spam es uno de los males de internet, que para un usuario doméstico sólo supone malestar, pero para las grandes empresas supone pérdidas millonarias.

Los Spammers entre otros métodos utilizan los formularios de nuestras páginas web para enviar correos basura a diestro y siniestro, de forma que ellos no utilizan sus servidores para ello si no que usan el de un tercero para su fines.

Esto provoca o puede provocar que nuestro servidor o la red a la que pertenece sea banneada y aparezca en las listas negras (black list) de los principales proveedores de correo o de los programas antispam. Evidentemente si luego queremos enviar un correo nosotros desde nuestro servidor es posible que no llegue a su destinatario por culpa de estos Spammers.

Por tanto es necesario que tomemos conciencia de que debemos proteger nuestros formularios, ya sea con funciones antispam, con validaciones visuales o con lo que sea.

Os dejo una pequeña función que trata de checkear los campos del formulario para que no contengan etiquetas que normalmente utilizan los spammers.

PHP:
  1. function antispam($campo){
  2.   //esto es un array con las posibles cabeceras que debemos checkear
  3.   $cabeceras = array("Content-Type:",
  4.                     "MIME-Version:",
  5.                     "Content-Transfer-Encoding:",
  6.                     "Return-path:",
  7.                     "Subject:",
  8.                     "From:",
  9.                     "Envelope-to:",
  10.                     "To:",
  11.                     "bcc:",
  12.                     "cc:");
  13.   //comprobamos si existe alguna cabecera dentro del campo
  14.   //si existe enviamos a una página forbidden
  15.   foreach($cabeceras as $valor){
  16.     if(strpos(strtolower($campo), strtolower($valor)) !== false){
  17.       header("HTTP/1.0 403 Forbidden");
  18.       exit;
  19.     }
  20.   }
  21. }

Para ulizarla simplemente la colocamos al principio de la página (o en un include) y antes de utilizar la función mail() debemos hacer el checkeo.

PHP:
  1. antispam($_POST['campo_1']);
  2. antispam($_POST['campo_2']);
  3. antispam($_POST['campo_3']);
  4. mail(...);

Si el Spammer a utilizado alguna de las etiquetas que aparecen en el array, el resultado será una página Forbidden, aunque podemos redireccionarlo a cualquier otra página, para mostrarle un mensaje, cambiando la salida del header.

PHP:
  1. header("location: error.php");

Salu2



0 Comments Send your comment

If comments are open, but there are no comments


Leave a Reply