
谁能帮我解释一下ASP这锻代码!
希望每句都解释一下,在这谢过了,非常感谢!DimGetFlagRem(提交方式)DimErrorSqlRem(非法字符)DimRequestKeyRem(提交数据)Dim...
希望每句都解释一下,在这谢过了,非常感谢!
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
Call infoback("请不要使用特殊字符,例如英文单引号等!")
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
Call infoback("请不要使用特殊字符,例如英文单引号等!")
End If
Next
Next
End If
Sql_in = "and |or |on |in |select |insert |update |delete |exec |declare |'"
Sql = Split(Sql_in, "|")
If Request.QueryString<>"" Then
For Each Sql_Get In Request.QueryString
For Sql_Data = 0 To UBound(Sql)
If InStr(LCase(Request.QueryString(Sql_Get)), Sql(Sql_Data))<>0 Then
Call infoback("请不要尝试非法注入!")
End If
Next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For Sql_Data = 0 To UBound(Sql)
If InStr(LCase(Request.Form(Sql_Post)), Sql(Sql_Data))<>0 Then
Call infoback("请不要尝试非法注入!")
End If
Next
Next
End If
'==========常用子程序==========
Sub infoback(info)
response.Write "<script language=javascript>alert('"&info&"');window.history.back();</script>"
response.End
End Sub
Sub infohref(info, url)
response.Write "<script language=javascript>alert('"&info&"');window.location.href='"&url&"'</script>"
response.End
End Sub
Sub noid
If request.QueryString("ID") = "" Or Not IsNumeric(request.QueryString("ID")) Then
Call infoback("不存在此数据!")
End If
End Sub 展开
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
Call infoback("请不要使用特殊字符,例如英文单引号等!")
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
Call infoback("请不要使用特殊字符,例如英文单引号等!")
End If
Next
Next
End If
Sql_in = "and |or |on |in |select |insert |update |delete |exec |declare |'"
Sql = Split(Sql_in, "|")
If Request.QueryString<>"" Then
For Each Sql_Get In Request.QueryString
For Sql_Data = 0 To UBound(Sql)
If InStr(LCase(Request.QueryString(Sql_Get)), Sql(Sql_Data))<>0 Then
Call infoback("请不要尝试非法注入!")
End If
Next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For Sql_Data = 0 To UBound(Sql)
If InStr(LCase(Request.Form(Sql_Post)), Sql(Sql_Data))<>0 Then
Call infoback("请不要尝试非法注入!")
End If
Next
Next
End If
'==========常用子程序==========
Sub infoback(info)
response.Write "<script language=javascript>alert('"&info&"');window.history.back();</script>"
response.End
End Sub
Sub infohref(info, url)
response.Write "<script language=javascript>alert('"&info&"');window.location.href='"&url&"'</script>"
response.End
End Sub
Sub noid
If request.QueryString("ID") = "" Or Not IsNumeric(request.QueryString("ID")) Then
Call infoback("不存在此数据!")
End If
End Sub 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询