Bueno, hoy les traigo el codigo de un filtro tanto para inyecciones XSS y SQL!
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...
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:
<?
$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
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?
Mas bien cuando me inicie en el tema me recomendaro mysqli y me acostumbre, una vez probe con pdo per no me gusto