haofeliz
http://blog.csdn.net/Haohappy2004
El ataque de inyección SQL es el método más común utilizado por los piratas informáticos para atacar sitios web. Si su sitio no utiliza una validación estricta de las entradas del usuario, es muy vulnerable a ataques de inyección SQL. Los ataques de inyección SQL generalmente se implementan enviando datos incorrectos o declaraciones de consulta a la base de datos del sitio, lo que puede provocar que los registros de la base de datos queden expuestos, modificados o eliminados. Hablemos de cómo se implementan los ataques de inyección SQL y cómo prevenirlos.
Mira este ejemplo:
// supuesta entrada
$nombre = "ilia'; ELIMINAR DE usuarios;";
mysql_query("SELECCIONAR * DE usuarios DONDE nombre='{$nombre}'");
Es obvio que el último comando ejecutado por la base de datos es:
SELECT * FROM usuarios WHERE nombre=ilia DELETE FROM usuarios;
Esto tuvo consecuencias desastrosas para la base de datos: se eliminaron todos los registros.
Pero si la base de datos que está utilizando es MySQL, afortunadamente, la función mysql_query() no le permite realizar dichas operaciones directamente (no se pueden realizar varias operaciones de declaración en una sola línea), por lo que puede estar tranquilo. Si la base de datos que está utilizando es SQLite o PostgreSQL y admite este tipo de declaraciones, se enfrentará a un desastre.