在今天的2012中国软件开发者大会上,我做了名为《关注HTML5安全》的主题演讲。我个人认为,随着HTML5的普及和发展,HTML5的安全会成为近期带来的严重问题。之所以大家还没有感受到的原因是什么?1、目前HTML5应用还不普及 2、暂时还没有吸引攻击者的关注。
演讲摘要如下(来自[CSDN专题](http://www.csdn.net/article/2012-09-11/2809819)):
-----------
我首先介绍了从HTML到HTML5的发展,在在91年当时诞生了HTML,当时只是一个简单的纯文本,并不存在安全方面的风险。而到了96年我们有了CSS和JS,由此诞生了XSS,也就是众所周知的就是跨脚本攻击,由此带来了安全问题。到2000年的时候就有了HTML1,安全问题开始受到更多的关注,同时也有针对浏览器方面的攻击。到了05年的时候Web的安全变得更加多样化,到08年HTML5出现之后,Web安全问题又有了新的变化。
![](https://box.kancloud.cn/2016-08-09_57a9a3259e942.jpg)
我曾经在《程序员》发表过一篇文章叫做HTML之美,当时提到了HTML是一个很美好的标准,我把HTML比喻成一朵玫瑰,因为它其实跟HTML5一样,玫瑰也具有很美好的特点,比如说它很漂亮,同时它有非常香的气味,但是它同时有一个非常不好的方面,就是会有尖锐的刺,我们就是要在享受它美好一面的同时,还要忍受它带来不好的一面。因为web需要不断地往前发展。虽然HTML5解决一些旧的风险,不过随着带来新的特性,也会帮助攻击者去引入新的攻击的方式。
我介绍了HTML5的四层架构,第一层是表现层,第二层是逻辑层,第三层是网络层,第四层是核心层面,在表现层面有可能遇到的API的攻击和新标签的攻击,在插件会引入CORJacking,在第三层会有Web Worker攻击,Web Storage攻击,在第四层有ClickJacking、CookieJacking。之所以大家还感觉不是特别明显,因为第一目前HTML5的应用不是特别普及,目前攻击者还没有注意到这个,下面我详细讲诉了这些安全性的风险。
接下来我讲到了HTML5安全规范问题,其实针对以上讲的问题,我认为HTML5是应该有一个关于安全方面的规范,进而规定开发者应该怎样更安全地、更好地去开发应用,还有规定浏览器厂商如何更好更安全地去开发浏览器。但是这个规定目前还没有,因为正在讨论中。有的人希望它独立成为一个章节,也有人希望它分散到各章。我认为规章终究会出现,会作为一个独立的形式出现在HTML5规范里,同时在每一章里的具体细节也会有所体现。
在演讲中,我也阐述了HTML5带来的机会,在HTML4时代有Antisamy,HTML purifier,目前HTML5在这一块是一个空白,空白代表着一片蓝海,针对这一片未来有可能形成一个新的产业,或者说会带来新的机会。就像国外现在有一家公司正在做一件事情,面对基于Web的攻击目前的防火墙很难进行禁止和防御,这家公司提供的新式防火墙,针对内容进行深入检查,会对数据内容,格式,以及意图,来分析哪些东西是安全的。我相信在国内随着HTML5的发展,针对HTML5的安全也会带来一些新的机遇。
演讲的最后,我分析了HTML5的未来,我认为HTML5的安全问题会在三个层面被引入,第一个层面是安全规范的层面,而HTML5是一个发展非常快速的规范,同时社区非常透明,而且响应及时。社区里面有拥有互联网最好的公司,比如说Facebook、谷歌以及微软的支持,所以在规范上会尽快地修复掉这些漏洞。第二个层面是浏览器实现,虽然浏览器不断地更新换代,会不断地解决这些安全性问题或者是漏洞,同时所有浏览器厂商都正在积极面对HTML5安全问题。第三个也就是今天要讲的目的,就是在应用实现层面提醒开发者注意HTML5安全问题,因为HTML5是未来安全发展的趋势,不能因为HTML5有这样的安全问题,就因噎废食,可以预见的是,基于HTML5应用未来会出现一个爆发式增长的趋势。所以现在就要了解这些问题,最后我建议开发者要仔细地去了解所要采用的特性,同时对应用安全性做一个评估。
-----------
下面是分享的PPT资料。在线阅读和下载地址在[**这里**](http://pan.baidu.com/share/link?shareid=25886&uk=2802317001)。
![](https://box.kancloud.cn/2016-08-09_57a9a325c02ce.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a325d7212.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a325eaf8a.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a3260b124.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a32621027.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a32635a61.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a32649507.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a3265ef25.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a3267598d.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a3268db44.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a326a3e93.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a326bb84e.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a326d178d.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a326e57e6.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a3270539e.JPG)
![](https://box.kancloud.cn/2016-08-09_57a9a32719c2e.JPG)
- 前言
- AutoPager的简单实现
- 利用CSS3特性巧妙实现漂亮的DIV箭头
- IE9在Win7下任务栏新特性简介
- 浏览器九宫格的简单实现
- Raphael js库简介
- 使用CSS3构建Ajax加载动画
- 用CSS3创建动画价格表
- 用CSS3实现浏览器的缩放功能
- 用纯CSS3实现QQ LOGO
- 用CSS3创建旋转载入器
- 使用Javascript开发移动应用程序
- 用HTML5创建超酷图像灰度渐变效果
- 使用CSS3创建文字颜色渐变(CSS3 Text Gradient)
- 仅用CSS创建立体旋转幻灯片
- 如何创建跨浏览器的HTML5表单
- 用CSS3实现动画进度条
- HTML5 Guitar Tab Player
- 奇妙的HTML5 Canvas动画实例
- 谈HTML5和CSS3的国际化支持
- 实现跨浏览器的HTML5占位符
- 前端开发必备工具:WhatFont Bookmarklet-方便的查询网页上的字体
- 使用HTML5和CSS3来创建幻灯片
- HTML5之美
- 如何使用HTML5创建在线精美简历
- 以小见大、由浅入深-谈如何面试Javascript工程师
- 快速入门:HTML5强大的Details元素
- 用CSS3实现图像风格
- HTML5视频字幕与WebVTT
- 用纯CSS3实现Path华丽动画
- 用3个步骤实现响应式网页设计
- 遇见CSS3滤镜
- 关于CSS3滤镜的碎念
- 用纯CSS3绘制萌系漫画人物动态头像
- CSS3新的鼠标样式介绍
- 用HTML5献上爱的3D玫瑰
- 对HTML5 Device API相关规范的解惑
- 如何使用HTML5实现拍照上传应用
- 2012第一季度国外HTML5移动开发趋势
- HTML5新特性:范围样式
- 百度开发者大会-《用HTML5新特性开发移动App》PPT分享
- Chrome 19对于HTML5最新支持的动态:电池状态API,全屏API,震动API,语音API
- 遇见Javascript类型数组(Typed Array)
- 用HTML5 Audio API开发游戏音乐
- 用HTML5实现人脸识别
- 用Javascript实现人脸美容
- Chrome 20对于HTML5最新支持的动态:颜色输入,网络信息API,CSS着色器
- 用HTML5实现手机摇一摇的功能
- 用HTML5实现iPad应用无限平滑滚动
- 用非响应式设计构建跨端Web App
- 了解SVG
- HTML5图像适配介绍
- HTML5安全:内容安全策略(CSP)简介
- HTML5安全:CORS(跨域资源共享)简介
- 用CSS3 Region和3D变换实现书籍翻页效果
- 谈谈移动App的思维误区
- Chrome新特性:文件夹拖拽支持
- 《关注HTML5安全》
- HTML5安全风险详析之一:CORS攻击
- HTML5安全风险详析之二:Web Storage攻击
- HTML5图像适配最新进展:响应式图片规范草案
- HTML5移动Web App相关标准状态及路线图
- HTML5安全风险详析之三:WebSQL攻击
- Chrome引入WebRTC支持视频聊天App
- HTML5安全风险详析之四:Web Worker攻击
- HTML5安全风险详析之五:劫持攻击
- HTML5安全风险详析之六:API攻击
- HTML5安全攻防详析之七:新标签攻击
- 在iOS Safari中播放离线音频
- 使用WebRTC实现远程屏幕共享
- Firefox、Android、iOS遇见WebRTC
- HTML5光线传感器简介
- HTML5安全攻防详析之八:Web Socket攻击
- HTML5安全攻防详析之完结篇:HTML5对安全的改进
- 激动人心!在网页上通过语音输入文字 - HTML5 Web Speech API介绍
- Web滚动性能优化实战
- 用CSS3设计响应式导航菜单
- 用HTML5构建高性能视差网站
- 漫谈@supports与CSS3条件规则
- HTML5下载属性简介
- 如何开发优秀的HTML5游戏?-迪斯尼《寻找奥兹之路》游戏技术详解(一)
- 如何开发优秀的HTML5游戏?-迪斯尼《寻找奥兹之路》游戏技术详解(二)
- 趋势:Chrome为打包应用提供强大新特性
- 从HTML5移动应用现状谈发展趋势
- 基于HTML5的Web跨设备超声波通信方案