Underc0de

Programación Web => Back-end => Mensaje iniciado por: Destructor.cs en Febrero 05, 2013, 11:49:12 PM

Título: Filtro inyeccion XSS y SQL
Publicado por: Destructor.cs en Febrero 05, 2013, 11:49:12 PM
Bueno, hoy les traigo el codigo de un filtro tanto para inyecciones XSS y SQL!
Código (php) [Seleccionar]
    function filtroInyeccion($val){
        if (is_string($val)) {
            $val = htmlentities($val, ENT_QUOTES, 'UTF-8');
        } elseif (is_array($val)) {
            $a = array();
            while(list($c, $v) = each($val)) {
                $a[$c] = filtroInyeccion($v);
            }
            $val = $a;
        }
               
        if (is_string($val)) {
    if (get_magic_quotes_gpc()) {
$val = stripslashes($val);
    }
    $val = mysql_real_escape_string($val);
    $val = addslashes($val, '%_');
            $val = htmlspecialchars ($val, ENT_QUOTES, 'UTF-8')
} elseif (is_array($t)) {
    $a = array();
    while(list($c, $v) = each($val)) {
$a[$c] = filtroInyeccion($v);
    }
    $val = $a;
}
        return $val;
    }


El codigo es bastante simple, simplemente usa algunas funciones como htmlententies, stripslashes, addslashes, htmlspecialchars en una determinada cadena, en caso de que sea un array, hace lo mismo con cada uno de los valores!
Ultimamente no he tenido tiempo para hacer aportes al foro pero en estos dias estare aportando mas!
Saludos a toda la comunidad!
Título: Re:Filtro inyeccion XSS y SQL
Publicado por: Hackmundy en Febrero 06, 2013, 10:11:53 PM
Muy bueno gracias cojo nota y a probar ...

saludos...
Título: Re:Filtro inyeccion XSS y SQL
Publicado por: 2Fac3R en Febrero 06, 2013, 11:18:58 PM
Buen código man, te dejo unas recomendaciones:

1.- Usa code=php en el BBCode para que haga un higthlight al código y así es más legíble ;)

2.- Tienes un error en la siguiente parte:

Código (php) [Seleccionar]

<?
$val = htmlspecialchars ($val, ENT_QUOTES, 'UTF-8')
?>


Te falta cerrar ";" :P

3.- La API mysql_* va a ser removida en futuras versiones de PHP, tratemos de usar "lo nuevo" y "seguro" que es PDO y MySQLI

4.- Cuando ingreses datos a una db lo remendable es limpiarla de etiquetas HTMl con strip_tags() y insertarla con PDO o MySQLI .

Espero te sirvan de algo ;)
Zalu2
Título: Re:Filtro inyeccion XSS y SQL
Publicado por: Destructor.cs en Febrero 06, 2013, 11:32:38 PM
Me olvide de la comilla si, ya hice un post de como mandar los datos usando MySqli que para mi hoy en dia es lo mejor para filtrar inyecciones sql! sinceramente lo prefiero mas que PDO
Título: Re:Filtro inyeccion XSS y SQL
Publicado por: 2Fac3R en Febrero 06, 2013, 11:40:55 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
... lo prefiero mas que PDO

¿Alguna razón en especial?
Título: Re:Filtro inyeccion XSS y SQL
Publicado por: Destructor.cs en Febrero 07, 2013, 12:35:10 AM
Mas bien cuando me inicie en el tema me recomendaro mysqli y me acostumbre, una vez probe con pdo per no me gusto