php如何防止sql注入攻击?
2023-04-03 · 百度认证:重庆猪八戒网络有限公司官方账号
注入式攻击的类型
可能存在许多不同类型的攻击动机,但是乍看上去,似乎存在更多的类型。这是非常真实的-如果恶意用户发现了一个能够执行多个查询的办法的话。本文后面,我们会对此作详细讨论。
如
果你的脚本正在执行一个SELECT指令,那么,攻击者可以强迫显示一个表格中的每一行记录-通过把一个例如 =1这样的条件注入到WHERE子句中,如下所示(其中,注入部分以粗体显示):
SELECT*FROMsitesWHEREsite='html580.com'OR1=1;'
正如我们在前面所讨论的,这本身可能是很有用的信息,因为它揭示了该表格的一般结构(这是一条普通的记录所不能实现的),以及潜在地显示包含机密信息的记录。
一条更新指令潜在地具有更直接的威胁。通过把其它属性放到SET子句中,一名攻击者可以修改当前被更新的记录中的任何字段,例如下面的例子(其中,注入部分以粗体显示):
UPDATEsitesSETsite='diygw.com'WHERE=
site='html580.com'
通过把一个例如1=1这样的恒真条件添加到一条更新指令的WHERE子句中,这种修改范围可以扩展到每一条记录,例如下面的例子:
UPDATEsitesSETsite='diygw.com'WHERE=
site='html580.comOR1=1;'
最危险的指令可能是DELETE-这是不难想像的。其注入技术与我们已经看到的相同-通过修改WHERE子句来扩展受影响的记录的范围,例如下面的例子:
DELETEFROMsitesSETsite='diygw.com'WHERE=
site='html580.comOR1=1;