Hola a todos!,
queria hacerles una pregunta que quizas tiene mas de conceptual que de practica.
Tengo 2 inputs para que el usuario guarde en mi base con largo max. (50 y 150 caracteres).
El tema es que utilizo las funciones que copio debajo para limpiar cualquier input de sentencias maliciosas (injecciones), y estas al encontrar un caracter no permitido, agregan mas caracteres para subsanar. Esto no me conviene ya que si el usuario uso los 150 caracteres, el final podria quedar mayor a esa cifra.
Estas son las funciones para limpiar:
Código:
function cleanInput($input) {
$search = array(
'@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments
);
$output = preg_replace($search, '', $input);
return $output;
}
function sanitize($input) {
if (is_array($input)) {
foreach($input as $var=>$val) {
$output[$var] = sanitize($val);
}
}
else {
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
$input = cleanInput($input);
$output = mysql_real_escape_string($input);
}
return $output;
}
function stripString($string, $num){
$string = substr($string, 0, $num);
return $string;
}
Que deberia hacer.. modificar la funcion para que en vez de agregar directamente remueva, o bien, con jquery bloquear ciertas teclas (no conozco todas las injeccioens que puede realizarse)?
desde ya agradezco cualquier ayuda que me esclaresca esta cuestion..
adios!