or=or修补方法 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    方法1: Replace过滤字符

    解决方法:查找login.asp下的

    pass=request.Form("pass")

    修改为:username=Replace(request.Form("name"), "’", "’’")

    pass=Replace(request.Form("pass"), "’", "’’")

    语法是屏蔽’和’’字符来达到效果.

    方法2:在conn.asp 内加入

    注前提 登陆页面有)

    把以下代码保存为safe.asp

    程序代码<%

    Dim Query_Badword,Form_Badword,i,Err_Message,Err_Web,name

    Err_Message = 3

    Err_Web = "safe.htm"

    ’出错时转向的页面

    Query_Badword="’|and|select|update|chr|delete|%20from|;|insert|mid|master.|set|chr(37)|="

    ’在这部份定义get非法参数,使用"|"号间隔

    Form_Badword="’|(|)|;|="

    ’在这部份定义post非法参数,使用"|"号间隔

    On Error Resume Next

    if request.QueryString<>"" then

    Chk_badword=split(Query_Badword,"|")

    FOR EACH Query_Name IN Request.QueryString

    for i=0 to ubound(Chk_badword)

    If Instr(LCase(request.QueryString(Query_Name)),Chk_badword(i))<>0 Then

    Select Case Err_Message

    Case "1"

    Response.Write ""

    Case "2"

    Response.Write ""

    Case "3"

    Response.Write ""

    End Select

    Response.End

    End If

    NEXT

    NEXT

    End if

    if request.form<>"" then

    Chk_badword=split(Form_Badword,"|")

    FOR EACH name IN Request.Form

    for i=0 to ubound(Chk_badword)

    If Instr(LCase(request.form(name)),Chk_badword(i))<>0 Then

    Select Case Err_Message

    Case "1"

    Response.Write ""

    Case "2"

    Response.Write ""

    Case "3"

    Response.Write ""

    End Select

    Response.End

    End If

    NEXT

    NEXT

    end if

    %>

最新文章