Hola a todos, necesito implementar en el servidor de la empresa una funcion que evite las inyecciones SQL XSS y otras cosas potencialmente peligrosas...
Ya tengo lo siguiente:
Código PHP:
function AntiSQLi($variable) {
$inyecciones = 'union|\/\*\*\/|having|select|and|order|group|insert|\;|0x|\..\/|document\.|\.(php|asp|cfm|txt|html|htm|doc)|shadow|';
$expreg = "/(?:".$inyecciones.")/i";
if (preg_match_all($expreg,urldecode($variable),$encontrado)) { echo '<h3>Tu acceso ha sido bloqueado.</h3>'; $hacking=true; // Email al webmaster + Banear al usuario }
}
Esa funcion se la paso a todas las variables que puedan venir en un llamado a la pagina con por ejemplo esto otro:
Código PHP:
foreach($_REQUEST as $variable=>$valor){
$found = AntiSQLi($_REQUEST[$variable]);
}
Entonces hasta ahi esta bien, pero necesito validar con expresiones regulares lo siguiente $inyecciones = 'having|select|and|order|group|'; y que despues de cada sub patron venga necesariamente uno de los siguiente signos: / o + o un espacio en blanco o su equivalente en codigo ASCII, me hago entender ???
el slash me lo toma pero no el signo +, incluso escapandolo con el backslash asi: \+ y el espacio en blanco no se como pedirlo con expresiones regulares...
Muchas Gracias de antemano