我也无法抗拒。
SQL注入是“一种代码注入技术,可利用应用程序数据库层中发生的安全漏洞”。换句话说,它的SQL代码 注入 作为一个查询中用户输入。
SQL注入可以操纵数据(删除,更新,添加ecc …)以及破坏或删除数据库表。虽然我不知道SQL注入操作脚本。
假设在您的PHP脚本中,您期望(作为用户输入)登录表单中的用户名和密码,这些名称和密码稍后将在查询中使用,例如:
SELECt Id FROM Users WHERe Name = $name AND Password = $password;
用户可以在里面插入
$name和
$password任何他喜欢的(例如槽的
<input>)。假设他添加了一个名称,例如“
1 OR 1 = 1;--”,查询现在将如下所示:
SELECt Id FROM Users WHERe Name = 1 OR 1 = 1; -- AND Password = $password;
然后,
;可以添加另一个查询或使脚本认为用户名和密码确实存在。
注意,这
-- AND Password = $password;是一个SQL注释,因此将被忽略。
如果您使用的是PHP <5,则应
mysql_real_escape_string()先将其查找并使用它来转义用户输入,然后再将其嵌入查询中。
如果您使用的是PHP5
+,则应使用PDO或mysqli扩展名,它们可以通过准备好的语句来防止此问题。


![SQL注入如何工作以及如何防止它[重复] SQL注入如何工作以及如何防止它[重复]](http://www.mshxw.com/aiimages/31/385825.png)
