SQL Injection no solo trata de comillas   
Author: admin

Enero 13, 2010

Posted in mysql | |

En el día de hoy el colega Jordi Prats de Systemadmin.es ha publicado un post sobre este tema de tanto interes para quienes se dedican al desarrollo de aplicaciones web.

Aunque estrictamente no se trata de un tema de sistemas, no es de extrañar que alguien pregunte estos temas. Por ejemplo, ayer me encontré con un programador que asociaba SQL Injection (un problema que tuvo en la base de datos) con las comillas: “Ya escapo las comillas

Revisando el código (PHP) encontré que hacia una diferenciación según el tipo de datos. En el caso de añadir un string a la query el código era:

$query.=" variable = '".mysql_real_escape_string($var)."'";

Mientras que si la variable era un identificador numérico:

$query.=" variable = ".mysql_real_escape_string($var);

En el caso que la variable en lugar del valor numérico contenga lo siguiente:

3; drop database ejemplo;

La query se construiría de la siguiente forma:

select name from users where variable=3; drop database ejemplo;

En este caso sólo usando comillas también para datos numéricos tendríamos un problema menos porque la query se construiría de la siguiente forma (dando un error al ejecutarse):

select name from users where variable='3; drop database ejemplo;'

SQL Injection realmente es una técnica genérica referida a añadir código SQL y no “usar comillas para hacer cosas malas

fuente: SystemAdmin.es

One Response to “SQL Injection no solo trata de comillas”

  1. Juan dice:

    Me apunto este tip, y me voy corriendo a revisar mis código :p

Leave a Reply