SQL注入的基本问题
有篇SQL注入的文章说,之所以会有SQL injection攻击,是因为程序员没有检查传来的数据类型.并且说如果用下面的这个函数代替原有的request函数的话,就可以完全可以杜绝SQL注入.
Function SafeRequest(ParaName,ParaType)
'--- 传入参数 ---
'ParaName:参数名称-字符型
'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)
Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If ParaValue="" or not isNumeric(ParaValue) then
Response.write "参数" & ParaName & "必须为数字型!"
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''")
End if
SafeRequest=ParaValue
End function
我有一个问题,既然解决办法如此简单可行,为什么还会有很多SQL injection出现呢?
(新人,请不吝赐教)