深入解析Web 2.0应用安全

这几年Web 2.0的应用让开发人员、最终用户和企业都取得了很多了不起的成果,从Google、Salesforce、MySpace、Flickr、 YouTube、Linkedin到今天十分火爆的Facebook,这些具有Web 2.0特征的公司,创造了很多奇迹。

然而,Web 2.0应用程序、移动设备所带来的富媒体功能,将会使隐蔽强迫下载及混合攻击增加。例如,社交网站上的嵌入视频及其链接成为了黑客频繁植入恶意软件的目标。随着更多的员工使用富媒体和Web 2.0应用程序,企业便会不知不觉暴露在更大的攻击威胁之下。

Ajax带来的典型风险

在Web 1.0时代中,客户端浏览器和服务器之间的通信是同步的,也就是说,当用户在Web页面上填写表单(例如使用搜索功能),请求就会发送到服务器上,经过处 理后,服务器将完整的结果页面发送回来。这种做法的反复执行,极大浪费了网络带宽,也浪费了使用者很多等待多余信息的宝贵时间。

Ajax可以和服务器只传输更新过的内容,它借助于客户端的JavaScript处理来自服务器的响应。同时,还有很多任务是由客户端本身来完成。因此,在网络上的数据交换更少、Web服务器的处理时间更短,用户感觉到的是更快的请求响应速度。

说到Ajax的好处,我们不得不提到浏览器的“同源安全模型”。同源模型是客户端脚本运行的重要安全度量标准,它指的是来自于同一个源的脚本可 以互相访问其方法和属性,而拒绝非同源的访问。该模型的精髓是:它认为从任何站点装载的内容是不安全的,当被浏览器不太信任的脚本运行时,它们应该只被允 许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。

为什么要有同源的限制呢?这是浏览器提供的最为基础的安全保障之一。如果放开同源限制,黑客就可以通过引诱用户访问嵌入在恶意站点上的正常应用,当用户访问该应用时,攻击脚本就可以在不同源之间互访,窃取用户登录信息,或者跟踪用户的各种操作。

虽然Ajax技术极大地推动了Web 2.0的发展,但是由于Ajax的诸多特征(动态、异步、突破同源限制),也给应用安全带来了隐患。

Ajax和XSS(跨站脚本攻击)

XSS是目前发生频率最高的网络攻击手段之一,它通过引诱用户执行恶意的JavaScript脚本(如引诱用户点击包含恶意脚本的链接),来达 到窃取用户信息或者实现其它恶意行为的目的。在Web 1.0时代,XSS作为服务器端Web应用安全的隐患被广泛用户注意。正是由于Web 2.0鼓励信息分享、信息交互和协作,用户就有了更多的机会去看和修改他人的信息,比如通过Wiki、Blog或SNS社区网络,也是这种应用为黑客创造 了更多的XSS攻击机会。现在的浏览器允许在Web页面运行时主动插入HTML代码(比如使用innerHTML属性),如果这些代码中包含恶意的 JavaScript,则会被浏览器立刻执行,造成安全隐患。

Ajax和CSRF(跨站请求伪造)

在CSRF中,攻击者在用户完全未察觉的情况下,代表用户发送请求。这可以通过引诱用户点击链接,或是将请求嵌入到Image Tag等HTML标记中,强迫用户发送。这里例举一个攻击场景:攻击者向用户发送一封电子邮件,邮件中包含一个银行链接请求,请求的内容是从用户的银行账 户向攻击者账户进行转账,用户使用该链接进入银行网站并进行了登录操作,该请求就会携同用户Cookie信息自动发送给银行。如果银行网站仅把 Cookie值当做验明用户身份的唯一手段,那么Web应用就认为该请求是合法的,转账操作立刻被执行。

在Ajax应用中,客户端和服务器的交互是通过HTTP协议实现的,如果站点安全保护措施不够强健,一旦CSRF成功,将会带来一系列灾难,如利用Web Mail服务发送邮件、代表用户在Blog上写注释、在SNS中修改用户信息等。

Ajax和DoS(拒绝服务攻击)

DoS是通过某种手段让服务器资源耗尽,阻断正常用户访问的攻击方法。比如向服务器提交大量请求,使服务器负荷过重。用户浏览器如果可以执行第 三方JavaScript,就会带来DoS的可能性,因为第三方JavaScript逻辑中,很可能包含大量导致服务器资源耗尽的循环程序,所以在允许使 用大量JavaScript的Ajax应用中,被DoS攻击概率大大提高。

其它安全隐患

Mushup应用通常是将任意第三方的Mushup组件组合在一起,如果攻击者向Mushup应用提供了恶意的Mushup组件,同时该应用没 有提供足够的安全保护的话,用户和整个Mushup应用就面临着巨大的安全隐患。因为一个恶意的Mashup组件可以向整个Mushup应用中注入恶意代 码,从而触发多种攻击行为,包括XSS、CSRF、DoS。如果该Mushup应用还提供服务器端的Ajax代理服务,恶意的客户端Mushup组件就可 以将用户的隐私发送到外部站点,因为Ajax代理突破了同源限制。

不容忽视的Flash

互联网从1996年引入了Flash技术后,通过动画和交互,改变了Web页面的用户体验。

2004年3月,Macromedia公司基于其专有的Macromedia Flash平台,发布了Flex。它涵盖了支持RIA(Rich Internet Applications)开发和部署的一系列技术。在Web 2.0时代,越来越多的开发者使用Flex技术开发Flash应用,由此带来的安全隐患也不容忽视。

由于Flash支持全局变量,因此带来了很多安全隐患。只要攻击者控制了全局变量,那么他就可以实施多种攻击行为。

Cross-Site Flashing(跨站Flash攻击)

这种攻击原理和XSS相似,不过CSF是通过向网站注入恶意的Flash程序来实施攻击。由于Web 2.0时代的应用复杂性(如Mushup应用),注入的恶意Flash不但可以攻击同源内的应用,还可能在非同源的各个组件中传播。

Cross-Site Scripting through Flash(通过Flash进行跨站脚本攻击)

该方法使用易受感染的Flash文件进行典型的XSS攻击,和XSF很相似,攻击的发生同样来源于对全局变量的引用,如将全局变量作为装入函数的参数。

攻击者使用恶意脚本,可能执行如下操作:1.将用户的Cookie值发送给攻击者;2.将用户的共享Flash对象发送给攻击者;3.将可通过DOM(如URL、表单字段等)访问的信息发送给攻击者。

原文链接:http://www.oschina.net/news/15670/deep-into-security-of-web-2-0

时间: 2024-09-02 17:53:03

深入解析Web 2.0应用安全的相关文章

Web 2.0 创建的16条法则

1.在你开始之前,先定一个简单的目标.无论你是一个Web 2.0应用的创建者还是用户,请清晰的构思你的目标.就像"我需要保存一个书签"或者"我准备帮助人们创建可编辑的.共享的页面"这样的目标,让你保持最基础的需求.很多Web 2.0应用的最初吸引之处就是它的简单,避免并隐藏了那些多余的复杂性. 站在创建者的立场,可以想象Google的几乎没有内容的主页,还有del.icio.us的简单的线条.从最终用户的角度来看,与之齐名的就是Diggdot.us所提供的初始化页面

用Dojo Objective Harness对Web 2.0应用程序进行单元测试

单元测试是保证软件开发质量的一个重要部分,对于敏捷和极限编程开发方法尤其如此.通常,对 Web 2.0 客户端用户界面进行自动的单元测试很困难,所以很少有人去做尝试.然而,Dojo 提供了一个单元测试工具,借此可以评估 JavaScript 的功能及用户界面的可视性.经过这个工具彻底测试过的用户界面最终包含的 Bug 数量会极大的减少.本文阐述了 Dojo Objective Harness (DOH) 的主要特点并通过与其它 Web 2.0 应用程序测试工具的比较展示了其强大的功能. 单元测试

Web 2.0编程思想:16条法则

1.在你开始之前,先定一个简单的目标.无论你是一个Web 2.0应用的创建者还是用户,请清晰的构思你的目标.就像"我需要保存一个书签"或者"我准备帮助人们创建可编辑的.共享的页面"这样的目标,让你保持最基础的需求.很多Web 2.0应用的最初吸引之处就是它的简单,避免并隐藏了那些多余的复杂性.站在创建者的立场,可以想象Google的几乎没有内容的主页,还有del.icio.us的简单的线条.从最终用户的角度来看,与之齐名的就是Diggdot.us所提供的初始化页面.

Web 2.0桌面与移动应用程序安全性设计

  访问控制.防火墙.入侵检测系统,以及入侵防御系统组成了一个完整的应用程序安全防线,向应用程序提供了全方位的保护.但是,这些机制并不能百分之百地防御网络应用程序攻击.因为这些应用程序是基于网络的,网络用户与应用程序进行的通讯支持直接的网络攻击,使得已建立的安全防线保护形同虚设.攻击者意识到了这一点,因此直接的网络应用程序攻击是当前大多数网络攻击类型. 为了平衡这种状况,应用程序开发人员必须有意识来建立防御攻击的策略.他们必须要考虑一些构成一系列网络攻击方式的因素: 大多数的网络应用程序开发人员

在 Apache Tuscany 上开发基于 SCA 的 Web 2.0 应用

引言 如今在企业级应用中,Ajax.Widget.RSS/Atom 等 Web 2.0 技术正在得到越来越广泛的使用,这些技术不但产生了良好的用户体验,同时也来越来越多地影响着许多前端系统的编程模式和系统架构.许多传统的 Java EE 产品和框架也在越来越多地引入这些 Web 2.0 技术,如 Struts2 和 JSF 都有了越来越完善的 Ajax 扩展,Portal 产品中也基于 Dojo 等 javascript 框架引入部分刷新等机制,大幅提升了性能和用户体验.可以看出,Web 2.0

死磕Tomcat7源码之一:解析web.xml

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dba10g.blog.51cto.com/764602/1775723 熟悉java web开发的同学都清楚,tomcat作为一款非常流行的servlet容器,开源,流行,配置简单,不需要赘述.个人认为,web.xml作为webapp的入口,弄清楚该文件的底层解析过程,进而可以窥探tomcat的底层工作机制,搞明白tomcat对servlert规范的实现机理. 通过本文,可以知

Core i7将加快SOA/SaaS/Web 2.0应用开发

Intel官方正式确认,基于全新Nehalem架构的下一代桌面处理器将沿用"Core"(酷睿)名称,命名为"Intel Core i7"系列,至尊版的名称是"Intel Core i7 Extreme"系列.而同架构服务器处理器将继续延用"Xeon"名称.至于为什么是"I7",而不是大多数人认为的"Core 3",Intel方面还没给出详细的解释,估计意思是Intel的第七代处理器,但2

AJAX 弄潮Web 2.0 在线Office项目复活

ajax|web|项目|在线 AJAX等时髦的开发技术正在刺激着消费者Web应用软件的增长.这些新的技术甚至在使一些一度被认为是不可能的项目"复活":在线版的Office. 以Google Maps为代表的一些Web服务的推出使得AJAX技术名扬天下.目前,有数十家初创厂商在利用它开发包括从字处理软件到项目管理软件在内的桌面软件的在线版本.但是,它们并非简单地在互联网上复制Office,有时被称为Web 2.0的许多这些Web应用软件的重点是通过网络发布和共享信息. 基本的AJAX技术

在业务中利用 Web 2.0

虽然 Web 2.0 已经有众多的用户,但有些企业在采纳 Web 2.0 方面却走得太慢.不过,很多公司现在也意识到 Web 2.0 的巨大潜力,并且清楚 YouTube.Twitter 和 SlideShare 等 Web 2.0 服务如何为他们的组织提供价值... 虽然 Web 2.0 已经有众多的用户,但有些企业在采纳 Web 2.0 方面却走得太慢.不过,很多公司现在也意识到 Web 2.0 的巨大潜力,并且清楚 YouTube.Twitter 和 SlideShare 等 Web 2.