·
miarroba.com
SQL Injections
 
Índice de subforos · Espacio WEB · PHP
Foros · Noticias · Buscar · Usuarios · Fisgona
Mensaje Autor 
#1 ·
SQL Injections

¿Cómo puedo proteger una consulta de base de datos en PHP de un SQL Injection?

El código funciona del siguiente modo, recojo un dato por método $_GET y lo meto a la base de datos.

He probado con el típico mysql_real_escape_string pero me salta error. Lo cual significa que, o no sé usarlo, o en miarroba no está permitido. Simplemente había puesto $var=mysql_real_escape_string($_GET['var']);

 

¿Ideas?

Gracias de antemano.



EffectedCardEffectedCard
Moderador
Moderador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 3.227
Desde: 20/May/2003
03/Jul/2009 03:27 GMT+1
#2 ·
RE: SQL Injections

Aunque el 2do parámetro es opcional, nada cuesta probar:

string mysql_real_escape_string ( string $cadena_no_escapada, resource $id_enlace );

Nota: Es necesaria una conexión MySQL antes de usar mysql_real_escape_string().

- - - - - - - - - -
Nota: copiado de manual de MySql

Un ejemplo de un ataque de inyección SQL

<?php
// Consultar la base de datos para verificar si hay una coincidencia de usuario
$consulta = "SELECT * FROM usuarios WHERE usuario='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($consulta);

// No revisamos $_POST['password'], ¡podría ser cualquier cosa que el usuario quiera! Por ejemplo:
// $_POST['username'] = 'aidan';
// $_POST['password'] = "' OR ''='";

// Esto quiere decir que la consulta enviada a MySQL sería:
echo $consulta;
?>

La consulta enviada a MySQL: SELECT * FROM usuarios WHERE usuario='aidan' AND password='' OR ''=''

Esto permitiría que cualquiera iniciara una sesión sin una contraseña válida.




Editado por GestionXlsGestionXls, Viernes, 3 de Julio de 2009, 08:34
GestionXlsGestionXls
Nació y murió en el foro
Nació y murió en el foro

Haz clic para ver el perfil del usuario
Mensajes: 1.484
Desde: 02/Ago/2008
03/Jul/2009 08:33 GMT+1
#3 ·
RE: SQL Injections

Habria que ver el codigo y aunque el segundo parametro es opcional, como bien dices gestion, seria recomendable probarlo a ver.

Por cierto que tipo de error te salta?. Saludos!.

 

 


aerialss88aerialss88
Machacateclados
Machacateclados

Haz clic para ver el perfil del usuario
Mensajes: 269
Desde: 13/Ene/2009
03/Jul/2009 10:42 GMT+1
#4 ·
RE: SQL Injections

Escrito originalmente por GestionXls

Nota: Es necesaria una conexión MySQL antes de usar mysql_real_escape_string().

He ahí el fallo. Lo había programado todo bien, pero la conexión de la base de datos era posterior a usar la recogida de las variables. He puesto la conexión antes y todo perfecto. Muchas gracias GestionXls.

 

 

aerialss88, a ti también por la intención. Siento no haber puesto el error antes, pero salí con cierta prisa cuando publiqué el tema y ahora ya está solucionado.

 

 

Un Saludo



EffectedCardEffectedCard
Moderador
Moderador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 3.227
Desde: 20/May/2003
04/Jul/2009 07:14 GMT+1
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Índice de subforos · Espacio WEB · PHP
Temas similares
Asunto Autor#VisitasÚltima respuesta
Sql UPDATE en un php26/May/2009, 00:24
levilexlevilex
169226/May/2009, 07:30
GestionXlsGestionXls Ir al último mensaje del tema
configuracion de SQL23/Abr/2009, 20:38
thechupaxthechupax
114923/Abr/2009, 20:43
NoSetup.orgNoSetup.org Ir al último mensaje del tema
Ayuda con jpgraph y php & SQL26/Sep/2008, 21:33
jahm_jahjahm_jah
0889No hay respuestas
CONSULTA PHP CON SQL con COMBOBOX19/Jun/2008, 17:33
zozer2404zozer2404
02.295No hay respuestas
¿QUE ES ESO DE PHP Y SQL? ¿PUEDO CRAR UNA BASE Y REALIZAR UNA CONSULTA DESDE LA WEB?08/May/2008, 17:32
makezanomakezano
266008/May/2008, 18:46
K1ll1ng_M4ch1n3K1ll1ng_M4ch1n3 Ir al último mensaje del tema
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  

TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Todas las fechas y horas son GMT+1. Ahora son las 22:36
Miarroba Networks, S.L. C/ 18 de Julio, 21 Bajo, 39610 Astillero (CANTABRIA) - CIF B-39512736
Inscrita en el Registro Mercantil de Cantabria, tomo 743, folio 161, libro 0, hoja S-12428, Inscripción 1ª