《白帽子讲WEB安全》学习笔记之第6章 HTML 5 安全

简介:

第6章 HTML 5 安全

6.1 HTML 5新标签

6.1.1 新标签的XSS

HTML5定义了新的标签、新的事件,这就有可能带来新的XSS攻击。所以黑白名单需要时常更新。

6.1.2 iframesandbox

iframesandbox属性,就是html5安全中很重要的组成部分部分。于此同时还带来了一个新的mime类型,text-html/sandboxed

html5页面中,可以使用iframesandbox属性,比如:<iframesrc="http://alibaba.com" sandbox>,sandbox后面如果不加任何值,就代表采用默认的安全策略,即:iframe的页面将会被当做一个独自的源,同时不能提交表单,以及执行javascript脚本,也不能让包含iframe的父页面导航到其他地方,所有的插件,如flash,applet等也全部不能起作用。简单说iframe就只剩下一个展示的功能,正如他的名字一样,所有的内容都被放入了一个单独的沙盒。

sandbox属性可以通过参数来支持更加精确的控制,有以下几个值可选择:

q  allow-same-original:允许同源访问

q  allow-top-navigation:允许访问顶层窗口

q  allow-forms:允许提交表单;

q  allow-script:允许执行脚本。

 参考:http://www.html5china.com/manual/html5/html5_iframe.htm

              http://www.cnblogs.com/yuzhongwusan/archive/2011/11/17/2252208.html

 

6.1.3 link types: noreferrer

HTML5<a><area>标签定义了一个link types: noreferrer。标签指定了noreferrer后,浏览器在请求指定的地址时将不再发送Referer

6.1.4 canvas的妙用

<canvas>这个 HTML 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 API展现给客户端JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上。

可以使用<canvas>在线破解验证码。

参考:http://www.jb51.net/html5/71804.html

6.2 其他安全问题

6.2.1 cross-origin resource sharing

wKiom1f491TSAAv5AAVawz1jJQk175.png

6.2.2 postMessage——跨窗口传递消息

HTML5中新增了postMessage方法,postMessage可以实现跨文档消息传输(Cross Document Messaging),Internet Explorer 8, Firefox 3,Opera 9, Chrome 3 Safari 4都支持postMessage

该方法可以通过绑定windowmessage事件来监听发送跨文档消息传输内容。

postMessage允许每一个window(包括当前窗口,当初窗口,inframe等)对象往其他窗口发送文本消息,从而实现跨窗口的消息传递。这个功能不受同源策略的限制。

使用postMessage时,有两个问题需要注意:

q  在必要是,可以接收窗口验证Domain,设置验证url,以防止来之非法页面的消息。这实际上是在代码中实现一次同源策略的验证过程。

q  根据“secure By Default”原则,在接收窗口不应该新人接收的消息,需要对消息进行安全检测。

6.2.3 web storage

Web Storage实际上由两部分组成:sessionStoragelocalStorage sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。 localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

优势:

q  存储空间:存储空间 更大:IE8下每个独立的存储空间为10M,其他浏览器实现略有不同,但都比Cookie要大很多。

q  服务器:存储内容不会发送到服务器:当设置了Cookie后,Cookie的内容会随着请求一并发送的服务器,这对于本地存储的数据是一种带宽浪费。而WebStorage中的数据则仅仅是存在本地,不会与服务器发生任何交互。

q  接口:更多丰富易用的接口:WebStorage提供了一套更为丰富的接口,使得数据操作更为简便。

q  存储空间:独立的存储空间:每个域(包括子域)有独立的存储空间,各个存储空间是完全独立的,因此不会造成数据混乱。



本文转自 梦朝思夕 51CTO博客,原文链接:http://blog.51cto.com/qiangmzsx/1859550

相关文章
|
20天前
|
SQL 安全 数据库
如何构建一个安全的Web应用:技术与策略的全面指南
【6月更文挑战第12天】构建安全Web应用的全面指南:了解SQL注入、XSS等威胁,采用输入验证、安全编程语言,配置安全服务器和数据库,使用HTTPS,实施会话管理、访问控制,正确处理错误和日志,定期进行安全审计和漏洞扫描。确保用户数据和应用安全。
|
12天前
|
前端开发 安全 数据安全/隐私保护
杨校老师课堂之WEB前端HTML2
杨校老师课堂之WEB前端HTML
22 0
|
12天前
|
XML 移动开发 前端开发
杨校老师课堂之WEB前端HTML1
杨校老师课堂之WEB前端HTML
24 0
|
21天前
|
数据库 数据安全/隐私保护 Python
Web实战丨基于django+html+css+js的电子商务网站
Web实战丨基于django+html+css+js的电子商务网站
40 3
|
21天前
|
前端开发 安全 数据安全/隐私保护
Web实战丨基于django+html+css+js的在线博客网站
Web实战丨基于django+html+css+js的在线博客网站
26 2
|
21天前
|
存储 前端开发 测试技术
Web实战丨基于django+html+css的在线购物商城
Web实战丨基于django+html+css的在线购物商城
35 2
|
21天前
|
数据库 数据安全/隐私保护 Python
Web实战丨基于Django与HTML的新闻发布系统(二)
Web实战丨基于Django与HTML的新闻发布系统(二)
22 1
|
21天前
|
存储 数据库 数据安全/隐私保护
Web实战丨基于Django与HTML的新闻发布系统
Web实战丨基于Django与HTML的新闻发布系统
19 1
|
21天前
|
存储 搜索推荐 数据库
Web实战丨基于Django与HTML的用户登录验证系统
Web实战丨基于Django与HTML的用户登录验证系统
26 1
|
26天前
|
Web App开发 移动开发 前端开发
Web网页制作-知识点(3)——HTML5新增标签、CSS简介、CSS的引入方式、选择器、字体属性、背景属性、表格属性、关系选择器 二
Web网页制作-知识点(3)——HTML5新增标签、CSS简介、CSS的引入方式、选择器、字体属性、背景属性、表格属性、关系选择器 二
23 1