Evitar injeccion SQL

Iniciado por alexander1712, Enero 26, 2013, 12:45:04 PM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Muy interesante éste debate.
Muchas gracias Xt3mP Alex y 2Fac3r.
Underc0de Manager!

Sorry por revivir este hilo pero me pareció interesante aportar en este hilo.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Sabeis que mysql_real_escape_string ha sido bypass-eado ?!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Lo que muestra en el articulo es un bypass a la mala implementacion de la función mysql_real_escape_string(), eso no quiere decir que mysql_real_escape_string() contenga un bug que se pueda inyectar cualquier consulta SQL. Incluso en el articulo detalla eso, que el bypass esta en la mala implementacion de la función.

Alguien hace mucho tenia la misma duda.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Sobre lo del PDO y su vulnerabilidad a SQL inyección. No es lo mismo decir que no es vulnerable y entender porque no es vulnerable.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
PDO y MySQLimp tienen una buena manera para separar la petición con el parámetro que queremos enviar. De esta manera, si nosotros enviamos, i.e pass' OR 1=1 eso siempre será forzado COMO valor del parámetro, por lo que en teoría SELECT * FROM users WHERE pass = ? quedaría SELECT * FROM users WHERE pass = "pass' OR 1=1";.

Eso es muy correcto, hay esta la razón porque no suelen ser vulnerables las aplicación ya que en PDO se suelen tratar los datos de entradas para limpiarlos y en MYSQL muchas veces no se tratan los datos de entradas y por eso se dan las SQLI. Pero de igual manera, si no implementas correctamente tu source, un código que utilice PDO y no trate los datos de entradas, seria vulnerable a SQLI.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.