Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2010, 18:30
moquehua
 
Fecha de Ingreso: agosto-2004
Mensajes: 113
Antigüedad: 20 años, 2 meses
Puntos: 0
cómo evitar e-mail injection

Hola, buenas tardes/noches.
Estoy reforzando la seguridad de mis formularios de contacto, ya me ocupe de las validaciones por javascript y ahora quiero evitar el spam (sin captcha).
Encontre esta función en muchos sitios, incluído foros del web, pero no se cómo usarlo.
Código PHP:
<?php
  
function ValidarDatos($campo){
    
//Array con las posibles cabeceras a utilizar por un spammer
    
$badHeads = array("Content-Type:",
                                 
"MIME-Version:",
                                 
"Content-Transfer-Encoding:",
                                 
"Return-path:",
                                 
"Subject:",
                                 
"From:",
                                 
"Envelope-to:",
                                 
"To:",
                                 
"bcc:",
                                 
"cc:");

    
//Comprobamos que entre los datos no se encuentre alguna de
    //las cadenas del array. Si se encuentra alguna cadena se
    //dirige a una página de Forbidden
    
foreach($badHeads as $valor){
      if(
strpos(strtolower($campo), strtolower($valor)) !== false){
        
header("HTTP/1.0 403 Forbidden");
        exit;
      }
    }
  }

  
//Ejemplo de llamadas a la funcion
  
ValidarDatos($_POST['email']);
  
ValidarDatos($_POST['asunto']);
  
ValidarDatos($_POST['mensaje']);
?>
mi formulario es
Código PHP:
<?php
if($Submit){

@
$Nombre $_POST['Nombre'];
@
$Email $_POST['Email'];
@
$Consulta $_POST['Consulta'];

//************************************************************************/
$header "From:[email protected]>\n";
$header .= "To: ".$receptor."\n";
$header .= "X-Mailer: PHP4\n"//mailer
$header .= "MIME-Version: 1.0\n";
$header .= "Reply-To: ".$Email."\n";
$header .= "Content-type: text/html; charset=iso-8859-1\n";
//************************************************************************/


$cuerpo "todos los datos";

mail($receptor,'asunto',$cuerpo,$header);
}
?>
cómo inserto la función ValidarDatos dentro de mi formulario?
muchas gracias
Germán