热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTML5安全:移动互联网时代的下一个关注点

在HTML5正在兴起的今天,当人们的目光还聚焦于HTML5和Flash的竞争以及主流厂商的态度之时,一个新的问题正在凸显——HTML5安全。虽然相关标准组织已经就HTML5的安全作出了一些规范

HTML5是公认的下一代Web语言,极大地提升了Web在富媒体、富内容和富应用等方面的能力,被喻为终将改变移动互联网的重要推手。在传统的终端与应用紧耦合模式遭遇发展瓶颈,特别是移动终端及移动互联网迅速发展的背景下,HTML5正不断推进移动互联网向更加开放融合的Web云服务模式转变,将深刻改变当前的应用服务模式及整个互联网生态环境。作为近年来Web标准巨大的飞跃,HTML5标准目前已经被IE、Chrome、Firefox、 Safari、Opera等各大主流浏览器所支持,支持HTML5终端及基于HTML5的Web App数量快速增长,HTML5的发展前景被各方面普遍看好。

然而,HTML5的新特性在推动Web App发展的同时,也引入了新的安全问题,增加了攻击者发动攻击的几率,扩大了可攻击的范围,加重了造成后果的严重程度。早在2011年8月,欧盟网络与信息安全局ENISA发布了一份分析HTML5安全的文档,宣布发现HTML5的13个规范中的51个安全问题,这是第一次有机构从安全角度来总体分析这套规范。由于HTML5标准初创,其安全机制、框架及技术都尚未成熟,因此随着基于HTML5的互联网应用及Web App大规模推广,其安全问题将逐渐暴露并引发关注。

HTML5六大安全问题

问题1:客户端存储安全

在以前版本的HTML语言中,仅允许将COOKIEs作为本地信息进行存储且分配空间相对较小。客户端上往往只存储简单的会话ID 等少量信息,当用户需要多次访问相同数据时,需要多次向服务器端发送请求,因此,大大降低了Web的访问性能。

随着Web应用复杂度和数据量的不断增大,访问性能成为制约发展的重要瓶颈。为此,HTML5引进了LocalStorage,允许浏览器在客户端存储大量数据,并允许使用新类型的数据。这一调整虽然大大提高了访问性能,但却是以牺牲安全为代价的,由此带来的安全隐患是巨大的。这样的机制下,敏感数据将被存储在客户端,攻击者只需通过物理访问或者破坏客户端等简单方法,就能够轻松地获得敏感数据。使用LocalStorage代替COOKIEs作身份验证,COOKIEs有HTTPONLY的保护,而LocalStorage没有任何保护机制,一旦有XSS漏洞,使用LocalStorage存储的数据很容易被攻击者获取。LocalStorage采用明文存储,如果用户不主动删除,数据将永久存在,且本地存储容易受到DNS欺骗攻击。LocalStorage存储没有路径概念,容易受到跨目录攻击。由于localStorage的存储空间多达5M,攻击者可以把蠕虫的shellcode代码存储在本地。

问题2:跨域通信安全

以前版本的HTML语言中的同源策略(Same-Origin Policy)对Javascript代码能够访问的页面内容做了很重要的限制,即Javascript只能访问与包含它的文档在同一域下的内容。例如,在a.com下的页面中包含的Javascript 代码,不能访问在b.com 域名下的页面内容;甚至不同的子域名之间的页面也不能通过Javascript 代码互相访问。

而HTML5为实现跨源资源共享,放开了这种限制,提供了一种跨域通信机制以绕过同源政策。这一机制将允许不同域的服务器在Web 浏览器的iframe间进行通信。这样一来,攻击者就能够滥用这个功能以获得敏感数据。对于应用程序开发人员而言,必须仔细检查以确保信息是源于他们自己的网站,否则来自其他网站的恶意代码将可能制造恶意信息。

问题3:WebSocket安全

传统浏览器只允许通过HTTP与网站互动,大量消耗了服务器带宽和资源,且无法满足聊天和游戏类的Web应用。WebSocket协议是HTML5实现的浏览器与服务器双向通信的新协议之一,能更好地节省服务器资源和带宽并达到实时通信。浏览器和服务器只需一个“握手”动作就能建立一条快速通道,进行数据的相互传送。

但是,这也带来了极大的安全隐患,攻击者可通过滥用WebSocket进行秘密的后门通信。此外,攻击者还可以直接利用浏览器对受害者的内部网络进行端口扫描。虽然除非目标网站有特别的允许,不然并不能接收到来自任意端口连接的回应,但是攻击者可通过这类请求所花的时间判断目标端口是打开的还是关闭的。

问题4:新标签安全

HTML5带给人们最明显的变化就是增加了Web动画、视频等相关的新标签,并对已有标签的属性进行了调整。然而,这些标签的安全性没有经过验证,可能存在已知或未知的各种安全漏洞。例如,图像处理一直是溢出漏洞的高发区,无法保证

问题5:用户位置信息安全

地理定位Geolocation API是HTML5新功能中最受关注的一个,因为安全和隐私的考虑,网站必须先得到用户的批准,随后才能获得位置信息。然而这些需要用户作决定的安全措施仍然存在安全隐患,因为一旦有了授权,网站不仅可以知道用户的位置,而且还可以在用户移动时对其进行实时追踪。如果网页中存在攻击者的劫持代码,那么用户的地理位置信息就会被攻击者获取。

问题6:拖放劫持攻击

拖放劫持可定义为点击劫持技术(Clickjacking)与HTML5拖放事件的组合。点击劫持攻击在隐藏框中的操作只涉及点击操作,其攻击范围有所限制。而拖放劫持模式将劫持的用户操作由单纯的点击扩展到拖放行为。在现在的Web应用中,有大量需要用户采用拖放完成的操作,因此,拖放劫持大大扩展了点击劫持的攻击范围。此外,在浏览器中拖放操作是不受同源策略限制的,用户可以把一个域的内容拖放到另外一个域;因此,突破同源策略限制的拖放劫持可以演化出更为广泛的攻击形式,能够突破多种防御。

积极捍卫HTML5安全

HTML5作为下一代Web 技术已成为不争的事实,而以其为核心的开放Web 平台亦已成为大势所趋。同时,HTML5技术的发展也存在许多不确定性。2012年7月,HTML5标准组织发生分裂,W3C与WHATWG分道扬镳影响深远。2012年8月,Facebook弃用HTML5,改用原生应用的方式重新构建iOS客户端,执行效率提高1倍以上。苹果利用HTML5打败Adobe Flash之后对HTML5采取了拖延策略,从iOS 4.0开始对其他浏览器关闭了大量对HTML5至关重要的API,给HTML5应用开发者设置障碍。HTML5发展前景尚不明朗, Web应用还未大范围普及,因此,在目前尚未全面推广的情况下,HTML5也尚未吸引攻击者的关注,安全问题并没有大面积爆发,并且,针对HTML5安全,目前各国政府和管理机构还没有系统有效的安全管控措施。不过,从长远来看,未雨绸缪地制定HTML5的安全保护策略是非常有必要的。

要想捍卫HTML5的安全,就需要推动标准研制。一方面,在HTML5上积极跟踪W3C以及WHATWG相关工作组研究,参与HTML5安全相关标准制定,不断推动HTML5安全标准完善;另一方面,针对Web App研究制定Web API分级授权、Web App安全检测标准等。此外,还需要加强与国内外领先浏览器企业的联系和合作,引导和鼓励国内浏览器厂商参与国际标准化工作,积极推进自主创新技术的标准化和应用。

加强HTML5的安全,还需要加强能力建设。不仅需要加强HTML5安全漏洞发现和检测以及HTML5相关协议安全性分析能力建设,还需要加强Web应用安全保障能力建设,搭建API分级授权、Web App安全检测能力验证环境,以及加强浏览器安全漏洞检测技术能力建设。

构建评测体系对于HTML5的安全保障而言也非常重要。第一,应该研究开发Web App安全检测技术和工具,建立移动应用商店Web App上线前安全评测机制,依据标准开展第三方Web App安全评测工作。第二,建立对移动终端Web引擎以及预装浏览器的安全评测机制。


推荐阅读
author-avatar
陈可1993_532
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有