再次發布一個防sql注入的ASP函數,代碼如下:
'功能防sql注入,包括字符型變量和數字型變量。
'參數:
'ParaName:參數名稱-字符型
'ParaType:參數類型-數字型(1表示以上參數是數字,0表示以上參數為字符)
'lenlimit:長度限制
'整理:www.ASPprogram.cn
'原創文章,轉載請保留此信息。
Function SafeRequest(ParaName,ParaType,lenlimit)
Dim ParaValue
ParaValue = trim(Request(ParaName))
If ParaType = 1 then
If IsNull(ParaValue) Or (Not IsNumeric(ParaValue)) then
ParaValue = lenlimit
End if
Else
If IsNull(ParaValue) Then
ParaValue = ""
Else
Dim strBadChar, arrBadChar, tempChar, i
strBadChar = "+,',--,^," & Chr(34) & "," & Chr(0) & ""
arrBadChar = Split(strBadChar, ",")
tempChar = ParaValue
For i = 0 To UBound(arrBadChar)
tempChar = Replace(tempChar, arrBadChar(i), "")
Next
tempChar = Replace(tempChar, "@@", "@")
If lenlimit <> -1 Then
tempChar = Left(tempChar,lenlimit)
End If
ParaValue = tempChar
End If
End If
SafeRequest = ParaValue
End Function
使用方法:
當我要獲取一個字符型變量str
value=saferequest("str",0,50)
這句的意思是:獲取參數str中的值,只獲取前50個字符,超過的丟失,並對那些特殊符號進行了過濾。
當我要獲取一個數字型變量str
value=saferequest("str",1,0)
這句的意思是:獲取參數str中的值,並進行數字判斷,不是數字的或者為空的時候,value就等於0,否則,value等於request("str")的值。