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:
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)?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; }
desde ya agradezco cualquier ayuda que me esclaresca esta cuestion..
adios!