网站公告列表

  没有公告

加入收藏
设为首页
在线投稿

您现在的位置: IT知识网 >> IT知识 >> 维修维护 >> 其它外设维护维修 >> 文章正文

 

  杜绝入侵:八大法则防范ASP网站漏洞 (2)           

杜绝入侵:八大法则防范ASP网站漏洞 (2)
作者:佚名 文章来源:不详 点击数: 更新时间:2006-12-6 0:43:11
    杜绝入侵:八大法则防范ASP网站漏洞 (2)
    杜绝入侵:八大法则防范ASP网站漏洞 (2)    防范技巧:
(1)为你的数据库文件名称起个复杂的非常规的名字,并把它放在几层目录下。所谓 “非常规”, 打个比方说,比如有个数据库要保存的是有关书籍的信息, 可不要给它起个“book.mdb”的名字,而要起个怪怪的名称,比如d34ksfslf.mdb, 并把它放在如./kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的Access数据库文件就难上加难了。
(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
    

    
DBPath = Server.MapPath(“cmddb.mdb”)
      conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath

    

假如万一给人拿到了源程序,你的Access数据库的名字就一览无余了。因此建议你在ODBC里设置数据源,再在程序中这样写:
    


    


    
conn.open“shujiyuan”

    

(3)使用Access来为数据库文件编码及加密。首先在“工具→安全→加密/解密数据库”中选取数据库(如:employer.mdb),然后按确定,接着会出现“数据库加密后另存为”的窗口,可存为:“employer1.mdb”。
    

要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
    

接下来我们为数据库加密,首先打开经过编码了的 employer1.mdb,在打开时,选择“独占”方式。然后选取功能表的“工具→安全→设置数据库密码”,接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他也是无法看到 employer1.mdb中的内容。
7、防范远程注入攻击
这类攻击在以前应该是比较常见的攻击方式,比如POST攻击,攻击者可以随便的改变要提交的数据值已达到攻击目的.又如:COOKIES 的伪造,这一点更值得引起程序编写者或站长的注意,不要使用COOKIES来做为用户验证的方式,否则你和把钥匙留给贼是同一个道理.
比如:
    


    
If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd") =”fqy#e3i5.com” then 
      ……..more………
      End if

    

我想各位站长或者是喜好写程序的朋友千万别出这类错误,真的是不可饶恕.伪造COOKIES 都多少年了,你还用这样的就不能怪别人跑你的密码.涉及到用户密码或者是用户登陆时,你最好使用session 它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一个信息,SessionID,它的随机值是64位的,要猜解它,不可能.例:
    


    


    
if not (rs.BOF or rs.eof) then 
      login="true"
      Session("username"&sessionID) = Username
      Session("password"& sessionID) = Password
      ‘Response.cookies(“username”)= Username
      ‘Response.cookies(“Password”)= Password

    

下面我们来谈谈如何防范远程注入攻击,一般的攻击都是将单表提交文件拖到本地,将Form ACTION=”chk.asp” 指向你服务器中处理数据的文件即可.如果你全部的数据过滤都在单表页上,那么恭喜你,你将已经被脚本攻击了.
    

怎么才能制止这样的远程攻击?好办,请看代码如下: 程序体(9)
    


    


    
<% 
      server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
      server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
      if mid(server_v1,8,len(server_v2))<>server_v2 then
      response.write "<br><br><center>"
      response.write " "
      response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱改参数!"
      response.write "
    
    "
      response.end
      end if
      %>
    
    ‘个人感觉上面的代码过滤不是很好,有一些外部提交竟然还能堂堂正正的进来,于是再写一个.
    
      ‘这个是过滤效果很好,建议使用.

    


    

if instr(request.servervariables("http_referer"),"http://"&request.servervariables("host") )<1 then response.write "处理 URL 时服务器上出错。
    

如果您是在用任何手段攻击服务器,那你应该庆幸,你的所有操作已经被服务器记录,我们会第一时间通知公安局与国家安全部门来调查你的IP. "
    

程序体(9)

  

文章录入:wuyongjian    责任编辑:wuyongjian 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最 新 热 门
    相 关 文 章
    利用google进行入侵与渗
    入侵电信记实
    新方法入侵win9x和win2k
    NT完全入侵教程
    与“入侵者”交手:认识
    警钟再鸣 防御在入侵的那
    警钟再鸣 防御在入侵的那
    新型蜜罐提高入侵检测准
    攻防有道:十大入侵检测
    用MRTG在IIS 6.0上实现入
     
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    Copyright© ITZS.NET All Rights Reserved
    QQ:272895858   ICP备案编号:吉ICP备07000044号
    IT知识网 站长:博浪