<%'我给大家一个函数,代替ASP中的Request函数,可以对一切的SQL注入Say NO,函数如下:
Function SafeRequest(ParaName,ParaType)
'--- 传入参数 ---
'ParaName:参数名称-字符型
'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)
Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write "参数" & ParaName & "必须为数字型!"
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''")
End if
SafeRequest=ParaValue
End function
####
'##
'## SQL注入攻击预防装置[字符型]
'##
'## @ data ->处理的数据
'## @ length ->长度限制
'##
'## 例: strSql("SQL字符型数据",50)
'##
function strSql(data,length)
'########################################################################
if length<>0 then data=left(data,length)
strSql="'"&replace(data,"'","''")&"'"
end function
'####
'##
'## SQL注入攻击预防装置[数字型]
'##
'## @ numeric ->数字
'##
'## 例: intSql(50)
'##
'## 2004/03/04,改良版,原因:IsNumeric检测MSSQL数据类型时会误判。
'##
function intSql(Numeric)
'########################################################################
dim MM_intTemp
On Error Resume Next
MM_intTemp=csng(Numeric)
if err=0 then
intSql=Numeric
else
intSql=0
end if
end function %>