Ver Mensaje Individual
  #5 (permalink)  
Antiguo 31/08/2013, 16:21
omdsetenta
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 10 meses
Puntos: 4
Respuesta: Seguridad en una consulta php mysql

A ver:
En este link:
http://php.net/manual/es/function.my...ape-string.php
Dice que se le añaden barras invertidas a una cadena de caracteres (por lo que entendi). Luego te ponen este ejemplo
Cita:

<?php
// Conexión
$enlace = mysql_connect('anfitrión_mysql', 'usuario_mysql', 'contraseña_mysql')
OR die(mysql_error());

// Consulta
$consulta = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($usuario),
mysql_real_escape_string($contraseña));
?>
Donde usan "sprintf" que no me interesa para nada, yo quiero una consulta normal mysql_query digamos.

Luego te ponen este ejemplo (que por cierto no tiene ninguna relacion con el anterior) y te dice que es un ejemplo de una consulta insegura. En ningun lado te dice como utilizar en forma normal (que es lo que ocurre en el 99% de las webs) sobre mysql-real-escape-string.

Cita:

<?php
// No hemos comprobado $_POST['password'], ¡podría ser cualquier cosa que el usuario quisiera! Por ejemplo:
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// Consultar la base de datos para comprobar si existe algún usuario que coincida
$consulta = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($consulta);

// Esto significa que la consulta enviada a MySQL sería:
echo $consulta;
?>
No es por nada, pero me tuve que mudar de servidor porque me reventaron la base de datos MySQL y ahora logicamente quiero tener mas cuidado antes de subir todo.

Última edición por omdsetenta; 31/08/2013 a las 16:32