ASP通用防注入代碼.杜絕SQL注入隱患.提升網站安全
<%
''''''''''''''''''''''''''''''''''''''''''''''''
'ASP通用防注入代碼
'您可以把該代碼COPY到標頭檔中.也可以單獨作
'為一個檔案存在,每次調用使用
'作者:y3gu - 2005-7-29
''''''''''''''''''''''''''''''''''''''''''''''''
Dim GetFlag Rem(提交方式)
Dim ErrorSql Rem(非法字元)
Dim RequestKey Rem(提交資料)
Dim ForI Rem(迴圈標記)
ErrorSql = "'~;~and~(~)~exec~update~count~*~%~chr~mid~master~truncate~char~declare" Rem(每個敏感字元或者詞語請使用半形 "~" 格開)
ErrorSql = split(ErrorSql,"~")
If Request.ServerVariables("REQUEST_METHOD")="GET" Then
GetFlag=True
Else
GetFlag=False
End If
If GetFlag Then
For Each RequestKey In Request.QueryString
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.QueryString(RequestKey)),ErrorSql(ForI))<>0 Then
response.write "<script>alert(""警告:\n請不要使用敏感字元"");location.href=""Sql.asp"";</script>"
Response.End
End If
Next
Next
Else
For Each RequestKey In Request.Form
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.Form(RequestKey)),ErrorSql(ForI))<>0 Then
response.write "<script>alert(""警告:\n請不要使用敏感字元"");location.href=""Sql.asp"";</script>"
Response.End
End If
Next
Next
End If
%>