Filtro inyeccion XSS y SQL

Iniciado por Destructor.cs, Febrero 05, 2013, 11:49:12 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 05, 2013, 11:49:12 PM Ultima modificación: Marzo 27, 2014, 05:35:01 PM por Expermicid
Bueno, hoy les traigo el codigo de un filtro tanto para inyecciones XSS y SQL!
Código: php
    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!

Muy bueno gracias cojo nota y a probar ...

saludos...


Un Hacker sabe de la materia;
Un Lamer Cree Saberlo;
Y yo solo aprendo.

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

<?
$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
Sólo el conocimiento te hace libre.

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

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
... lo prefiero mas que PDO

¿Alguna razón en especial?
Sólo el conocimiento te hace libre.

Mas bien cuando me inicie en el tema me recomendaro mysqli y me acostumbre, una vez probe con pdo per no me gusto