机房360首页
当前位置:首页 » 应用安全 » 保护Web应用程序不受直接对象引用(DOR)

保护Web应用程序不受直接对象引用(DOR)

来源:TechTarget中国 作者:Lily编辑 更新时间:2011-8-18 10:01:31

摘要:指向特定文件、数据库记录或目录的Web应用程序容易遭受攻击。本文探讨对象引用如何影响企业网络安全,并讨论防御此攻击的方法。

  不妨设想一个恶意黑客能够访问贵公司所有客户的账户细节,或者使用别人的信用卡在线购物,而这一切只需改变URL中的几个数字。这听起来似乎不太可能,但是如果你的Web应用程序容易遭受不安全的直接对象引用的危害,恶意黑客要达到这个目的简直易如反掌。

  不安全的直接对象引用举例

  这里的“对象”是指文件、目录、数据库记录等内部实施的对象,在应用程序将URL(或表单参数)中的一个引用暴露给这些对象之一时,就会发生安全问题。这是因为黑客可以修改这些直接对象引用,例如,黑客可以在一个URL被提交之前进行参数修改,企图访问一个不同的、未获得授权的文件、目录,或数据库中的条目。如果不加强其它的授权检查,这种企图就会成功。

  假设有一个Web应用程序最终会生成下面这个URL:

  http://www.yourinsecurewebapp.com/yourgetfile.cfm?filename=yoursometextfile.txt

  这里有一个非常明显的对yoursometextfile.txt文件的直接对象引用。它对黑客的诱惑在于,看到如果将这个文件名换成另外一个文件名(如“yourpasswords.txt”或“youraccounts.txt”)会发生什么。

  要取得这种成功,黑客必须正确地猜测出系统上另外一个文件名,但一个更合理的方法,是寻找系统上其它位置的特定内容,其使用的方法就是目录遍历攻击(目录遍历是Http的一个安全漏洞,它使得攻击者能够访问受限制的目录,并能够在Web服务器的根目录以外执行命令。)。从本质上讲,这意味着访问一个完全不同的目录,或者存在漏洞的应用程序的开发者所构建的任何方面。为访问Apache Tomcat文件名和口令,黑客可能将URL的最后一部分改成:

  ?filename=../../tomcat/conf/tomcat-users.xml

  并非所有的直接对象引用都提供对文件的访问。还有另外一种可能激发黑客兴趣的URL,其结尾格式如下:

  ...account.cfm?customerid=4567

  这会使黑客进一步问,“如果我将客户ID(customerid)换成4568会发生什么?”

  与此类似,如果一个Web应用程序允许一个用户根据数据库的关键字引用从存储在数据库中的一个或多个信用卡中的一个,那么黑客修改此数据库的关键字时,会发生什么呢?

  <s e l e c t name="choosecreditcard">
  <option value="56">
  XXXXXXXXXXXX6902
  </option>
  <option value="88">
  XXXXXXXXXXXX5586
  </option>
  </s e l e c t>

本文地址:http://www.jifang360.com/news/2011818/n219127209.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片