Foro de elhacker.net

Programación => Java => Mensaje iniciado por: bertamax en 10 Septiembre 2010, 17:05 pm



Título: ¿Cómo evitar injección SQL?
Publicado por: bertamax en 10 Septiembre 2010, 17:05 pm
En java, utilizando la librería ESAPI y con una base de datos SQL Server.
Gracias


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: Debci en 10 Septiembre 2010, 17:18 pm
Filtra los caracteres como ' e indices negativos que pueda provocar errores.

Saludos


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: bertamax en 10 Septiembre 2010, 17:32 pm
El problema es que yo he intentando evitarlo usando la clase PreparedStatement e también lo he intentado usando variables parametrizadas, como explica en el siguiente enlace:
http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL
pero en ambos casos aunque no me ejecuta la sentencia sql, me la introduce como un campo de texto en la base de datos.
Entonces yo estoy intentando que directamente si algun atancante quiere meterme alguna instruccion en la base de datos que no pueda.
He estado viendo si usando la librería ESAPI se podría, pero da bastantes problemas.
Estoy mirando manera de cómo resolver mi problema de una forma cómoda y fácil, no se si alguien conocerá
Gracias


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: Debci en 10 Septiembre 2010, 17:56 pm
El problema es que yo he intentando evitarlo usando la clase PreparedStatement e también lo he intentado usando variables parametrizadas, como explica en el siguiente enlace:
http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL
pero en ambos casos aunque no me ejecuta la sentencia sql, me la introduce como un campo de texto en la base de datos.
Entonces yo estoy intentando que directamente si algun atancante quiere meterme alguna instruccion en la base de datos que no pueda.
He estado viendo si usando la librería ESAPI se podría, pero da bastantes problemas.
Estoy mirando manera de cómo resolver mi problema de una forma cómoda y fácil, no se si alguien conocerá
Gracias
Me hablas de una aplicación de escritorio o servicio web?

Saludos


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: bertamax en 10 Septiembre 2010, 18:02 pm
Un servidor web, utilizo JSPs.
Gracias


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: Debci en 10 Septiembre 2010, 19:10 pm
Un servidor web, utilizo JSPs.
Gracias
Entonces yo acederia a la sql por un servidor remoto que haga de puente y en aquel filtrar lo recivido, puedes hacerlo en uno mismo, pues varios servidores ralentizarian dichas cosnultas.
Ya digo que con filtrar manualmente las comillas simples y los indices negativos tienes muchisimo ganado.

Saludos


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: bertamax en 13 Septiembre 2010, 22:59 pm
¿Entonces no me recomiendas usar la librería ESAPI?


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: ~ Yoya ~ en 13 Septiembre 2010, 23:24 pm
Citar
Filtra los caracteres como ' e indices negativos que pueda provocar errores

Seguro?

http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

Aunque en ese articulo, los ejemplos están hechos en PHP, ps es facir entender lo que se trata de aclarar.

Eso siempre depende del caso en que te encuentres...


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: Debci en 14 Septiembre 2010, 18:06 pm
Citar
Filtra los caracteres como ' e indices negativos que pueda provocar errores

Seguro?

http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

Aunque en ese articulo, los ejemplos están hechos en PHP, ps es facir entender lo que se trata de aclarar.

Eso siempre depende del caso en que te encuentres...

Cuando hablo de comillas hablo de slashes y otros caracteres especiales -.-

Saludos


Título: Re: ¿Cómo evitar injección SQL?
Publicado por: bertamax en 15 Septiembre 2010, 22:16 pm
Muchas gracias, lo he hecho como me dijistes, Derbi, utilizando la función contains de java.
Saludos