Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/01/2010, 15:34
izrrah
 
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación Funcion Anti SQL Injection [PHP,ExpReg.]

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