这段代码是什么意思???

<%
dim sql_injdata
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")

If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=JavaScript>alert('请不要在参数中包含非法字符尝试注入!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=JavaScript>alert('请不要在参数中包含非法字符尝试注入! ');history.back(-1)</Script>"
Response.end
end if
next
next
end if
%>

请网络上的高手们帮我看看,有能力的请注释每一行代码! 在线等

第1个回答  2007-03-15
似乎来晚了,呵呵,楼上的都说完了,虽然有的地方解释的不准确,但大概意思差不多!~
就是一段通用的防SQL注入的程序`!
第2个回答  2007-03-15
<%
dim sql_injdata '定义变量
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare" '变量付值
SQL_inj = split(SQL_Injdata,"|") 将sql_injdata用split函数分成sql_inj数组

If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString '获取网址后面的参数
For SQL_Data=0 To Ubound(SQL_inj) 'for循环,循环变量为上面的的那个数组
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=JavaScript>alert('请不要在参数中包含非法字符尝试注入!');history.back(-1)</Script>" '用instr判断获取的网址参数中是否包含数组中的预定义字符,如有,表示有非法字符
Response.end
end if
next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=JavaScript>alert('请不要在参数中包含非法字符尝试注入! ');history.back(-1)</Script>"
Response.end
end if
next
next
end if
%>
======
下面一段就不注了,用的同一个方法
知道split,instr函数用法,for循环这些就能看懂了本回答被提问者采纳
相似回答