Foros del Web » Programando para Internet » PHP »

como evitar que realizen SQL Injection en mi web

Estas en el tema de como evitar que realizen SQL Injection en mi web en el foro de PHP en Foros del Web. hola amigos, me he topado con los SQL Injection , y me acabo de dar cuenta que mi web es vulnerable, al tener todo el ...
  #1 (permalink)  
Antiguo 03/08/2010, 16:54
 
Fecha de Ingreso: enero-2009
Ubicación: Lima
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
como evitar que realizen SQL Injection en mi web

hola amigos,

me he topado con los SQL Injection, y me acabo de dar cuenta que mi web es vulnerable, al tener todo el contenido en la BD, ademas de no haber contemplado este tema durante el desarrollo,

agradeceria me ayuden a encontrar las mejores alternativas de seguridad para una web basada en PHP y MySql, según su experiencia.

¿ usar addslashes es lo mejor ?
¿ crear funciones es lo mas conveniente ?

actualmente mi web consulta de la sigueinte manera:
$content=mysql_query("select * from tabla b where estado='1' and codigo=".$_GET['value']." ",$conexion);
$content1=mysql_fetch_row($content);

una hoja interna tiene la url
content.php?value=12 -> el 12 es el codigo en la BD

se que es una consulta muy simple, espero comprendan mi preocupación por solucionar el tema de seguridad,

por otro lado, no se como encontraron el nombre de mis tablas y sus columnas ? existe algun metodo para averiguar las tablas y columnas MySql de las webs en PHP y MySql o tambien fue mediante SQL Injection

Desde ya gracias por su ayuda ..
  #2 (permalink)  
Antiguo 03/08/2010, 17:02
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: como evitar que realizen SQL Injection en mi web

Segun tengo entendido con aplicar un mysql_real_escape_string() es suficiente, luego lei por ahi otro tipo de inyeccion que usaba algunas funciones mysql concat_ws() y group_concat() por lo que creo que estaría bien aplicar esto a tus variables:

$_POST['variable']=str_ireplace("concat_","concat-",$_POST['variable]);
$_POST['variable']=str_ireplace("_concat","concat-",$_POST['variable]);

Aqui encontre un post sobre esto: http://labxonk.blogspot.com/2009/07/...injection.html

Si alguien aporta algo más de seguridad en este tema, mejor que mejor, que seguro que algo me paso por alto......
  #3 (permalink)  
Antiguo 03/08/2010, 17:19
 
Fecha de Ingreso: enero-2009
Ubicación: Lima
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: como evitar que realizen SQL Injection en mi web

vun muchas gracias por responder

voy a probarlo,

te comento que en una web me intertaron el siguiente SQL Inject

-1+union+select+1,group_concat(v_nomb_usuario,0x3a, v_pass_usuario,0x3a,v_mail_usuario),3,4,5,6,7,8,9, 10+from+usuario

y esto le imprimia mis usuarios y contraseñas, mi duda es como encontraron el nombre de la tabla y las columnas,

¿ hay forma de hacerlo mediante SQL Injects ?
  #4 (permalink)  
Antiguo 03/08/2010, 17:26
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: como evitar que realizen SQL Injection en mi web

Buff, ni idea, aveces ocurre que tu web tiene algun error y si no lo configuras bien sale parte de la sentencia MYSQL y pueden adivinarte algun nombre de tabla y campos, pero no se..... soy 0 experto en ataques, y muy poco en defensa jeje.

Por cierto, justo con lo que te dije de reemplazar 'concat_' por 'concat-' te podias haber defendido de ese ataque que te hicieron.
  #5 (permalink)  
Antiguo 03/08/2010, 17:37
 
Fecha de Ingreso: enero-2009
Ubicación: Lima
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: como evitar que realizen SQL Injection en mi web

Vun muchas gracias por tu ayuda,

ese link que posteaste esta muy bueno y de rapida comprensión,

mcuhas gracias,

por otro lado, demas amigos agradezco cualquier otra ayuda para seguir fortaleciendome contra estos ataques

Etiquetas: injection, sql
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 11:33.