返回首页   购物车      订单查询      会员中心      注册登陆
  凤凰公告:佛山单先生网站已完成单号08102216002535 ; 广州刘先生(单号08053123501590)佛山何先生(单号08062200025035),网站已经制作好,请注意!凤凰设计是由IT行业精英和广告行业设计精英组成的设计工作室,主要从事网站系统开发、网页制作、域名注册、平 面设计和Flash动画设计,行业精英强强联合让您花最少的资金获得大公司的输出效果!

网站防注入机制

2009-2-4 11:55:37  发布人:凤凰设计工作室  来源:互联网  【 】  点击数:
  • 把代码添加在数据库连接页面,在每个ASP文件开头包含此文件,即可使网站有防止注入过滤机制

    <% 

    '--------定义部份------------------ 
    Dim XH_Post,XH_Get,XH_Cookie,XH_In,XH_Inf,XH_Xh,XH_Inf2,XH_In2 
    '自定义需要过滤的字串,用 "|" 分隔 
    XH_In = "'|and|exec|insert|select|delete%20from|update|count|*|chr|mid|master|truncate|char|declare|drop%20table|from|net%20user|xp_cmdshell|/add|net%20localgroup%20administrators|Asc|char" 
    XH_In2 = "'|and|exec|insert|select|delete%20from|update|count|chr|mid|master|truncate|char|declare|drop%20table|from|net%20user|xp_cmdshell|/add|net%20localgroup%20administrators|Asc|char" 
    '---------------------------------- 
    %> 

    <% 
    XH_Inf = split(XH_In,"|") 
    XH_Inf2 = split(XH_In2,"|") 
    '--------POST部份------------------ 
    If Request.Form <>"" Then 
    For Each XH_Post In Request.Form 

    For XH_Xh=0 To Ubound(XH_Inf) 
    If Instr(LCase(Request.Form(XH_Post)),XH_Inf(XH_Xh)) <>0 Then 
    Response.Write " <Script Language=javascript>alert('系统提示↓请不要在参数中包含非法字符尝试注入!');history.back(-1); </Script>" 
    Response.End 
    End If 
    Next 
    Next 
    End If 
    '---------------------------------- 

    '--------GET部份------------------- 
    If Request.QueryString <>"" Then 
    For Each XH_Get In Request.QueryString 

    For XH_Xh=0 To Ubound(XH_Inf) 
    If Instr(LCase(Request.QueryString(XH_Get)),XH_Inf(XH_Xh)) <>0 Then 
    Response.Write " <Script Language=javascript>alert('系统提示↓请不要在参数中包含非法字符尝试注入!');history.back(-1); </Script>" 
    Response.End 
    End If 
    Next 
    Next 
    End If 
    '---------------------------------- 

    '--------COOKIE部份------------------- 
    If Request.Cookies <>"" Then 
    For Each XH_Cookie In Request.Cookies 

    For XH_Xh=0 To Ubound(XH_Inf2) 
    If Instr(LCase(Request.Cookies(XH_Cookie)),XH_Inf2(XH_Xh)) <>0 Then 
    Response.Write " <Script Language=javascript>alert('系统提示↓请不要在参数中包含非法字符尝试注入!');history.back(-1); </Script>" 
    Response.End 
    End If 
    Next 
    Next 
    End If 
    '---------------------------------- 
    %> 
     
    <% 
    Response.Buffer = True  '缓存页面 
    '防范get注入 
    If Request.QueryString <> ""  Then StopInjection(Request.QueryString) 
    '防范post注入 
    If Request.Form <> ""  Then StopInjection(Request.Form) 
    '防范cookies注入 
    If Request.Cookies <> ""  Then StopInjection(Request.Cookies) 

    '正则子函数 
    Function StopInjection(Values) 
    Dim regEx 
    Set regEx = New RegExp 
        regEx.IgnoreCase = True 
        regEx.Global = True 
        regEx.Pattern = "'|#|([\s\b+()]+([email=select%7Cupdate%7Cinsert%7Cdelete%7Cdeclare%7C@%7Cexec%7Cdbcc%7Calter%7Cdrop%7Ccreate%7Cbackup%7Cif%7Celse%7Cend%7Cand%7Cor%7Cadd%7Cset%7Copen%7Cclose%7Cuse%7Cbegin%7Cretun%7Cas%7Cgo%7Cexists)[/s/b]select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b[/email]+]*)" 
        Dim sItem, sValue 
        For Each sItem In Values 
            sValue = Values(sItem) 
            If regEx.Test(sValue) Then 
                Response.Write " <Script Language=javascript>alert('非法注入!你的行为已被记录!!');history.back(-1); </Script>" 
                Response.End 
            End If 
        Next 
        Set regEx = Nothing 
    End function 
    %> 

    仅供参考,凤凰工作室不对非正式客户提供本文知识技术支持。


  • 上一篇:网站防入侵过滤机制
  • 下一篇:没有了
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册)密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论