Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/01/2008, 08:32
jonaytom
 
Fecha de Ingreso: diciembre-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 1
Re: validar formulario con php

Aparte de la validación javascript antes de enviar el formulario, Para evitar que los hackers inserten código no deseado hagan sql o email injection también es recomendable hacer una validacion en el lado del servidor. Recomiendo usar una función como esta:

<?php
function ValidarDatos($campo){
//Array con las posibles cadenas a utilizar por un hacker
$CadenasProhibidas = array("Content-Type:",
"MIME-Version:", //evita email injection
"Content-Transfer-Encoding:",
"Return-path:",
"Subject:",
"From:",
"Envelope-to:",
"To:",
"bcc:",
"cc:",
"UNION", // evita sql injection
"DELETE",
"DROP",
"SELECT",
"INSERT",
"UPDATE",
"CRERATE",
"TRUNCATE",
"ALTER",
"INTO",
"DISTINCT",
"GROUP BY",
"WHERE",
"RENAME",
"DEFINE",
"UNDEFINE",
"PROMPT",
"ACCEPT",
"VIEW",
"COUNT",
"HAVING",
"'",
'"',
"{",
"}",
"[",
"]",
"HOTMAIL", // evita introducir direcciones web
"WWW",
".COM",
"@",
"W W W",
". c o m",
"http://",
"$", //variables y comodines
"&",
"*"
);
//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($CadenasProhibidas as $valor){
if(strpos(strtolower($campo), strtolower($valor)) !== false){
echo("<script>
alert('No puede introducir direcciones web, comillas, corchetes, código de programación o cualquier dato no relativo a los campos del formulario');
history.back();</script>");
exit;
}
}
}

//Asignamos la variable POST y llamada a la función Validardatos($texto)
$texto= $_POST["texto"];
ValidarDatos($texto);
?>