Ver Mensaje Individual
  #9 (permalink)  
Antiguo 06/09/2013, 07:34
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Problema al obtener datos de Mysql con GET por mal orden

Cita:
Iniciado por PHPeros Ver Mensaje
Ciertamente si no sabes PHP mejor que no lo utilizes, esque tampoco tiene mas explicación...
Entonces no des soluciones por las cuales no vas a explicar

mysql_real_escape_string según el manual, escapa los caracteres que pueden generar conflictos a la hora de realizar una operación mysql_real_escape_string

Me explico

Código PHP:
Ver original
  1. <?php
  2. // No hemos comprobado $_POST['password'], ¡podría ser cualquier cosa que el usuario quisiera! Por ejemplo:
  3. $_POST['username'] = 'aidan';
  4. $_POST['password'] = "' OR ''='";
  5.  
  6. // Consultar la base de datos para comprobar si existe algún usuario que coincida
  7. $consulta = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
  8. mysql_query($consulta);
  9.  
  10. // Esto significa que la consulta enviada a MySQL sería:
  11. echo $consulta;
  12.  
  13. //que retorna SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
  14. ?>

Si ves el ejemplo anterior ya que no se escapan los caracteres correctamente un atacante puede divinamente sacarte toda la informacion de la base de datos solo porque los caracteres que provienen de la consulta no están escapados

Si se usa mysql_real_escape_string la consulta quedaria SELECT * FROM users WHERE user='aidan' AND password='\' OR \'\'=\'' evitando así que los atacantes puedan aprovecharse y sacarte informacion de la base de datos por medio de datos externos

PD: No uses las funciones mysql_* ya que estan obsoletas y se eliminaran en un futuro, usa mysqli o PDO que te dan mucho mejores herramientas y la seguridad en la bd es mejor

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.