SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: wpersei en Lunes 16 de Abril de 2007, 17:01

Título: Como Valido Que Usuario No Escriba Sub Querys
Publicado por: wpersei en Lunes 16 de Abril de 2007, 17:01
saludos

creo que el titulo del tema no esta muy claro, pero la pregunta es:

supongamos voy a hacer un sistema de busquedas, como valido para para que el usuario no escriba un subquery en alguno de los campos que digita, y que el sistema no me lo tome como un querym o que cuando el usuario digite caracteres espaciales esto tambien lo valide, como texto?

muchas gracias y mucha suerte
Título: Re: Como Valido Que Usuario No Escriba Sub Querys
Publicado por: ibito en Lunes 16 de Abril de 2007, 17:11
no estoy muy seguro, pero creo que con expresiones regulares  :ph34r:  :ph34r:  :ph34r:  :ph34r:
Título: Re: Como Valido Que Usuario No Escriba Sub Querys
Publicado por: Mollense en Lunes 16 de Abril de 2007, 17:31
HAy funciones para eso pero primero leete esto (http://foro.elhacker.net/index.php/topic,45693.0.html). Está muy interesante.-
Título: Re: Como Valido Que Usuario No Escriba Sub Querys
Publicado por: Mollense en Martes 17 de Abril de 2007, 01:52
Cita de: "wpersei"
cuando el usuario digite caracteres espaciales esto tambien lo valide, como texto
No estoy mus seguro porque nunca lo he usado pero creo que podés lograrlo con el caracter de escape "\" delante del caracter especial o mejor usando addslashes(string cadena) (http://es2.php.net/manual/es/function.addslashes.php)
Título: Re: Como Valido Que Usuario No Escriba Sub Querys
Publicado por: F_Tanori en Martes 17 de Abril de 2007, 06:05
en el archivo php.ini esta la directiva

magic_quotes_gpc = On

Que sirve para que el servidor le coloque la diagonal (\) a la comilla (apostrofe ')

puedes comprobar si esta activada la directiva y si no lo esta agregarle las diagonales

Código: Text
  1. $dato=$_GET['eldato'];
  2.  
  3. if (!get_magic_quotes_gpc())
  4.    {
  5.       $dato=addslashes($dato);
  6.    }
  7.  
 
para leer se utiliza (lo contrario a addslashes)

Código: Text
  1. $dato=stripslashes($dato);
  2.  
  3.  
para convertir los codigos HTML puedes usar

http://es2.php.net/manual/es/function.htmlentities.php (http://es2.php.net/manual/es/function.htmlentities.php)



Saludos
Título: Re: Como Valido Que Usuario No Escriba Sub Querys
Publicado por: Mollense en Martes 17 de Abril de 2007, 06:13
Cita de: "F_Tanori"
en el archivo php.ini esta la directiva

magic_quotes_gpc = On

Que sirve para que el servidor le coloque la diagonal (\) a la comilla (apostrofe ')
Hoy probando un ejemplo de injection me di cuenta que mi servidor agregaba automáticamente el caracter de escape y ahora me entero el por qué. Gracias F T :beer: