日期:2014-05-16  浏览次数:21136 次

无效字符
错误提示:
Microsoft VBScript 编译器错误 错误 '800a0408'

无效字符

/Manage/Web/NewsInfo/Modify2.asp,行 13

if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then


写了一个防SQl注入的,报错了

Dim sql_injdata,Sql_Inj,SQL_Get,Sql_Post,Sql_DATA
sql_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
Sql_Inj = Split(SQL_Injdata, "|")
Response.Write Sql_Inj

If Request.Form<>"" Then
    For Each Sql_Post In Request.Form
For Sql_DATA = 0 To UBound(SQL_inj)
Response.write ("<script>alert('"&Request.Form(Sql_Post)&"!');</script>")
Response.Write Request.Form(Sql_Post)
Response.Write Sql_Inj(Sql_DATA) 
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
'If instr(Request.Form(Sql_Post),SQL_inj(SQL_Data))>0 Then
           Response.Write "<Script>alert('系统提示请不要在参数中包含非法字符尝试注入!')</Script>"
           Response.End
End If
        Next
    Next
End If

------解决方案--------------------
我帮你检查了一下
Response.Write Sql_Inj  写法错误,因为Sql_Inj是数组,不可以这样输出
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then 这句中的大于号是中文的,你改一下

Response.Write "<Script>alert('系统提示请不要在参数中包含非法字符尝试注入!');</Script>" 
Response.End
这两句前面的空格删掉,因为有特殊字符在里面,重新手动输入空格。

再运行一下你的程序