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

网站防入侵过滤机制

2009-2-4 11:42:39  发布人:凤凰设计工作室  来源:互联网  【 】  点击数:
  • 数据库被恶意注入代码是非常致命的问题,主要的手段有:利用程序漏洞,用一段程序就可以测试出来,主要体现在前台提交的一些表单上没有对非法字符进行过滤!那么我们如何防止注入呢?(这里只针对asp+MSSQL)

    首先就是在程序中加上防止注入的过滤函数:

    检测非字符
    SQL_injdata = "|exec|insert|||delete|set | || | |char | || ||mid( |asc( ||cast|declare|exec|varchar| <script|script|iframe|3bomb|c.js"
    SQL_inj = split(SQL_Injdata,"|")

    检测GET
    If Request.QueryString <>"" Then
    For Each SQL_Get In Request.QueryString
      For SQL_Data=0 To Ubound(SQL_inj)
      if instr(lcase(Request.QueryString(SQL_Get)),Sql_Inj(Sql_DATA))>0  Then
        response.write "输入非法,数据库拒绝一些特殊的字符!"
        Response.end
      end if
      next
    Next
    End If

    检测POST
    If Request.Form <>"" Then
    For Each Sql_Post In Request.Form
      For SQL_Data=0 To Ubound(SQL_inj)
      if instr(lcase(Request.Form(Sql_Post)),Sql_Inj(Sql_DATA))>0 Then
        response.write "输入非法,数据库拒绝一些特殊的字符!"
        Response.end
      end if
      next
    next
    end if

    检测cookie
    If Request.Cookies <>"" Then
    For Each Sql_Cookie In Request.Cookies
      For SQL_Data=0 To Ubound(SQL_inj)
      if instr(lcase(Request.Cookies(Sql_Cookie)),Sql_Inj(Sql_DATA))>0 Then
        response.write "输入非法,数据库拒绝一些特殊的字符!"
        Response.end
      end if
      next
    next
    end if

    这样就基本上把表单提交数据时的漏洞给堵死了!!从三个方面判断,直接请求数据和表单提交或者cookies提交数据非法字符都会被过滤掉!

    dim server_v1,server_v2
    server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
    if server_v1 <>"" then
    if instr(server_v1,"3bomb")>0 then
    response.write " <br> <br> <center> <table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>"
    response.write " <tr> <td style=font:9pt Verdana>"
    response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱该参数!"
    response.write " </td> </tr> </table> </center>"
    response.end
    end if
    else
    server_v1=Cstr(Request.ServerVariables("SERVER_NAME"))
    end if
    server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))

    if instr(server_v1,"3bomb")>0instr(server_v2,"3bomb")>0 then
    response.write " <br> <br> <center> <table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>"
    response.write " <tr> <td style=font:9pt Verdana>"
    response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱该参数!"
    response.write " </td> </tr> </table> </center>"
    response.end
    end if

    这段程序首先得到访问你网站的来源,如果是从您知道的一个非法域名3bomb上过来就不让他访问。
    这个就完成了对某一指定域名的屏蔽,这个域名极有可能就是一段妈妈程序!

    禁止某些ip访问 ---------------------
    if instr(Request.ServerVariables("REMOTE_ADDR"),"209.172.33")>0 then
    Response.Write "拒绝访问"
    response.End()
    end if

    实在不行就通过ip进行屏蔽,如果访问来源是某一个ip段就进行屏蔽

    这三招保证您的数据库以后不在受注入的干扰,个人的亲身体验

  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册)密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论