Foros del Web » Creando para Internet » Diseño web »

Sobre Apache y Sql Inyection

Estas en el tema de Sobre Apache y Sql Inyection en el foro de Diseño web en Foros del Web. Hola Foro. Tengo un sitio web montado sobre Apache 2, Php 5 y MySQL. El tema es que el sitio se maneja con urls como ...
  #1 (permalink)  
Antiguo 30/08/2009, 14:14
 
Fecha de Ingreso: enero-2007
Mensajes: 348
Antigüedad: 17 años, 2 meses
Puntos: 1
Sobre Apache y Sql Inyection

Hola Foro.

Tengo un sitio web montado sobre Apache 2, Php 5 y MySQL.

El tema es que el sitio se maneja con urls como esta:

misitio.com/?sec=noticia&id=23

misitio.com/index.php?sec=galeriasfotos

Ahora, esta situación puede permitir ataques de sql inyection?

Muchas Gracias.

Salu2.
  #2 (permalink)  
Antiguo 30/08/2009, 15:17
 
Fecha de Ingreso: abril-2009
Mensajes: 371
Antigüedad: 15 años
Puntos: 22
Respuesta: Sobre Apache y Sql Inyection

si, si no haces bien las consultas a la base de datos

el servidor web no tiene nada que ver, lo que importa es que cuando haces una consulta sql y metes datos que vienen de fuera (en realidad es mejor hacerlo con todas las consultas, por precaucion) uses consultas parametrizadas

en php puedes hacerlo con PDO o mysqli entre otras librerias, usando consultas preparadas

lo que nunca, nunca debes hacer son consultas del tipo mysql_query("SELECT * WHERE id=$_GET['id']")
  #3 (permalink)  
Antiguo 31/08/2009, 06:12
 
Fecha de Ingreso: enero-2007
Mensajes: 348
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Sobre Apache y Sql Inyection

Cita:
Iniciado por mpeg Ver Mensaje
si, si no haces bien las consultas a la base de datos

el servidor web no tiene nada que ver, lo que importa es que cuando haces una consulta sql y metes datos que vienen de fuera (en realidad es mejor hacerlo con todas las consultas, por precaucion) uses consultas parametrizadas

en php puedes hacerlo con PDO o mysqli entre otras librerias, usando consultas preparadas

lo que nunca, nunca debes hacer son consultas del tipo mysql_query("SELECT * WHERE id=$_GET['id']")
mpeg, pero si en la configuración del sitio php utilizo un usuario de mysql que no tenga permisos de escritura, digo, un usuario que solo pueda leer datos me puedo evitar algún problema con los datos que son representados en el sitio?

muchas gracias.

saludos.
  #4 (permalink)  
Antiguo 31/08/2009, 06:26
 
Fecha de Ingreso: mayo-2008
Mensajes: 6
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Sobre Apache y Sql Inyection

Podrias evitarte problemas con ese tipo de usuario, pero siempre esta el riezgo de que puedan ver la estructura de tu base de datos, y posteriormente usar ese conocimiento para hacer algo peor

Como dice mpeg, lo mejor es usar prepared Statements en tu base de datos. Ahora yo tambien te sugeriria validad todos los datos que entran a tu pagina web.

O lo haces manualmente, ademas de comprobar que no ingresen cadenas extrañas como > o ', sugiero que busques cadenas de texto como SELECT, o UPDATE.Ademas es muy importante validar el tamaño de lo que entra, si te envian cadenas bien grandes pueden volver loco al servidor haciendole lo que se conoce como buffer overflow.

O puedes hacerlo tambien automaticamente con ayuda del paquete PEAR, google PEAR validation and filters.
  #5 (permalink)  
Antiguo 31/08/2009, 06:55
 
Fecha de Ingreso: abril-2009
Mensajes: 371
Antigüedad: 15 años
Puntos: 22
Respuesta: Sobre Apache y Sql Inyection

Cita:
Iniciado por buji Ver Mensaje
mpeg, pero si en la configuración del sitio php utilizo un usuario de mysql que no tenga permisos de escritura, digo, un usuario que solo pueda leer datos me puedo evitar algún problema con los datos que son representados en el sitio?
no. aun en el supuesto de que tu usuario solamente tuviera permisos de lectura para ciertas bases de datos, quieres que cualquiera pueda leer cualquier cosa de la bbdd? passwords, sesiones, info privada...

Cita:
Iniciado por jeeba Ver Mensaje
Ahora yo tambien te sugeriria validad todos los datos que entran a tu pagina web.

O lo haces manualmente, ademas de comprobar que no ingresen cadenas extrañas como > o ', sugiero que busques cadenas de texto como SELECT, o UPDATE.Ademas es muy importante validar el tamaño de lo que entra, si te envian cadenas bien grandes pueden volver loco al servidor haciendole lo que se conoce como buffer overflow.
validar los datos que entran es totalmente innecesario si se usan consultas parametrizadas (preparadas)
a los datos se les comprueba el tipo y se les escapa automaticamente con estas consultas

y en general tampoco hace falta validar el tamaño, eso es competencia del servidor, tanto de aplicacion (php) como web (apache)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:46.