Feliz
http://blog.csdn.net/Haohappy2004
O ataque de injeção de SQL é o método mais comum usado por hackers para atacar sites. Se o seu site não usar validação estrita de entrada do usuário, ele ficará muito vulnerável a ataques de injeção de SQL. Os ataques de injeção de SQL geralmente são implementados enviando dados incorretos ou instruções de consulta ao banco de dados do site, o que pode fazer com que os registros do banco de dados sejam expostos, alterados ou excluídos. Vamos falar sobre como os ataques de injeção de SQL são implementados e como evitá-los.
Veja este exemplo:
// entrada suposta
$nome = "ilia'; DELETE FROM usuários;";
mysql_query("SELECT * FROM usuários WHERE nome='{$nome}'");
É óbvio que o último comando executado pelo banco de dados é:
SELECT * FROM users WHERE name=ilia;
Isto teve consequências desastrosas para o banco de dados - todos os registros foram excluídos.
Mas se o banco de dados que você está usando for MySQL, então, felizmente, a função mysql_query() não permite que você execute tais operações diretamente (operações com múltiplas instruções não podem ser executadas em uma única linha), então você pode ficar tranquilo. Se o banco de dados que você está usando for SQLite ou PostgreSQL e suportar tais instruções, você enfrentará um desastre.