Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/03/2013, 12:31
mumraa
 
Fecha de Ingreso: marzo-2012
Mensajes: 102
Antigüedad: 12 años, 1 mes
Puntos: 1
Limpiar Injecciones SQL en input con largo maximo

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!