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

Hola, gracias por la respuesta.
Al receptor lo tomo de una base de datos de acuerdo al identificador del formulario.
No puse el formulario completo porque no venía al caso.
Muchas gracias nuevamente
Germán

//EDITO//
Después de probar el php así
Código PHP:
<?php
  
function ValidarDatos($campo){
    
$badHeads = array("Content-Type:",
                                 
"MIME-Version:",
                                 
"Content-Transfer-Encoding:",
                                 
"Return-path:",
                                 
"Subject:",
                                 
"From:",
                                 
"Envelope-to:",
                                 
"To:",
                                 
"bcc:",
                                 
"cc:");

    foreach(
$badHeads as $valor){
      if(
strpos(strtolower($campo), strtolower($valor)) !== false){
        
header("HTTP/1.0 403 Forbidden");
        exit;
      }
    }
  } 
@
$Nombre ValidarDatos($_POST['Nombre']);
@
$Email ValidarDatos($_POST['Email']);
@
$Consulta ValidarDatos($_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);
}
?>
todos los campos que tienen ValidarDatos llegan vacios, el mail se sigue enviando pero sin nada.
Gracias
Germán

Última edición por moquehua; 02/02/2010 a las 21:50