专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Ajax教程 » ajax技术详解:安全专家详解如何保证AJAX程序安全 »正文

ajax技术详解:安全专家详解如何保证AJAX程序安全

来源: 发布时间:星期四, 2008年6月19日 浏览:266次 评论:0
  在他们使用Web 2.0的同时,我可以使用各种变量值。他还演示了一个暴露的管理API结构如何能够让他仅能够访问GetPublicData函数的时候访问服务器的SetPrivateData函数。所有的全球变量和功能都是一个全局对象的属性。

  Billy Hoffman最近在旧金山举行的GWT(Google Web Toolkit)会议上谈了高级的AJAX问题。Hoffman负责管理惠普安全实验室。这个部门在惠普2007年收购之前名为SPIDynamics。Hoffman在这次收购之后进入了惠普公司。他的工作重点是自动发现Web应用程序安全漏洞和研究网络爬虫技术。

  Hoffman的研究领域包括取样、JavaScript静态分析(自动分析源代码)和跨站脚本(XSS)。跨站脚本就是恶意网络用户向其他用户观看的网页注入代码。然而,他指出,破解AJAX程序不需要XSS。那是一件很容易的事情。

  Hoffman在讲话中演示了针对AJAX应用程序实施的攻击。这些攻击包括操纵客户端逻辑程序、击败逻辑程序保护技术、劫持功能(改变客户端代码)、劫持JSON(JavaScript对象符号)和拒绝服务攻击等。他讨论了GWT应用程序对这些攻击的敏感性,对照Prototype和 Dojo等其它AJAX框架比较了GWT的安全功能。最后,他谈了有关破解Google Gears的问题。Google Gears是一种开源软件扩展程序,能够让开发人员创建可以离线运行的网络应用程序。

  黑客喜欢AJAX

  Hoffman说, AJAX使黑客的梦想成为了现实。它提供了更多的“攻击接口”、直接的应用程序编程接口访问、容易实施逆向工程、扩大的网络攻击的可能性以及离线攻击安全漏洞。Hoffman说,微软在向黑客敞开大门方面是最糟糕的,因为几乎与SQL语句有关的一切事情都是可以注入SQL的,从而允许黑客直接访问数据库服务器。他说,许多专家的忠告都是非常错误的。

  Hoffman演示了他所说的一个样本AJAX通过Hacker Vacations.com(黑客休假)网站的方式。这个站点能够让你查找航班和订购座位。他利用流行图书、入门文章和论坛上的“专家”忠告制作了这个演示。专门制作的这个东西都很好。

  黑客喜欢Firebug

  Hoffman演示了网站是如何充满安全漏洞的。他使用Firebug调试工具考察了基本代码。这个工具让黑客工作非常容易。这个免费的工具能够让你编辑、调试和监视任何网页上的CSS、HTML和JavaScript live。

  他使用“Inspect for FindFlights”说明你不能相信你向客户端软件输入的任何事情。这个客户端软件甚至能够隐藏你的代码不让业余黑客看到。他点击“CTL-U”查看隐藏的资源,然后向代码注入一个断点。然后,他使用火狐浏览器挖掘出一个巨大的数据集表,然后得到返回的“可用航班”的实际显示信息。

  他解释说,我刚刚看到了比这个应用程序提供的更多的航班。然后,他能够操纵AJAX电话占有特殊的座位。

  Hoffman说,1997年发生了一次针对CD Universe公司的实施的客户端价格攻击。在这次攻击中,黑客在三个月的时间里能够以1美分的价格购买CD光盘,直到这个诈骗活动被发现。Hoffman在他的演示中也对座位的价格进行的同样的事情。他指出,在他们使用Web 2.0的同时,我可以使用各种变量值。

  在Web 1.0中,服务器描绘了这种功能。但是,这个功能现在被推向了边缘。它向攻击者提供了一个如何使用你的应用程序的蓝图。

  黑客喜欢粗粒度API

  Hoffman把它称作“API Domino Effect”(应用程序编程接口多米诺骨牌效应)。他使用Firebug寻找这种回叫信号功能,看服务器发回了什么。采用这种方法,他首先访问了航班ID网页、然后访问了价格和航班ID网页,接下来他订购了航班的座位并且支付了费用。

  从安全的观点看,API是粗粒度的,在客户端暴露的东西太多了。程序员把一切都放到了一个文件中,然后从公共网站的部分查阅这个文件。他展示了一个现实世界的例子,让他使用SQL指令获得有价值的口令。他还演示了一个暴露的管理API结构如何能够让他仅能够访问GetPublicData函数的时候访问服务器的SetPrivateData函数。

  迷惑和懒装载不能保护代码

  Hoffman接下来演示了黑客如何通过迷惑手段击败逻辑保护程序。迷惑手段包括加密代码、懒装载和把对象初始化推迟到需要的时候。Hoffman还演示了如何使用他编写的一个JS分析程序轻松破解一些迷惑手段。他承认,Firebug工具不能破解动态代码,包括JSON反应、远程脚本和懒装载。这是“查看”与“查看生成的”的因果关系问题。你需要一种监视JavaScript环境的方法。

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: