6.1 HTML5新标签
(1)XSS Filter如果建立一个黑名单的话,则可能就不会覆盖到HTML5新增的标签和功能,从而避免发生XSS。
(2)在HTML5中,专门为iframe定义了一个新的属性,叫sandbox。使用sandbox这一个属性后,iframe标签加载的内容将被视为一个独立的“源”,其中的脚本将被禁止执行,表单被禁止提交,插件被禁止加载,指向其他浏览对象的链接也会被禁止。
(3)在HTML5中为a标签和area标签定义了一个新的Link Types:** noreferrer。标签指定了noreferrer后,浏览器在请求该标签指定的地址时将不再发送Referer**。
(4)canvas标签可以让JavaScript在页面中直接操作图片对象,直接操作像素,构造出图片区域,甚至可以用来破解验证码。
6.2 其他安全问题
(1)Origin Header用于标记HTTP发起的“源”,服务器端通过识别浏览器自动带上的这个Origin Header,来判断浏览器的请求是否来自一个合法的“源”。
(2)Origin Header可以用于防范CSRF,不容易被伪造或清空。
(3)postMessage允许每一个window(包括当前窗口、弹出窗口、iframes等)对象往其他的窗口发送文本消息,从而实现跨窗口的消息传递。这个功能是不受同源策略限制的。
(4)在使用postMessage()时,有两个安全问题需要注意:在必要时,可以在接收窗口验证Domain,甚至验证URL,以防止来自非法页面的消息。这实际上是在代码中实现一次同源策略的验证过程;如果将消息写入innerHTML,甚至直接写入script中,则可能会导致DOM based XSS的产生。根据“Secure By Default”原则,在接收窗口不应该信任接收到的消息,而需要对消息进行安全检查。
(5)Web Storage分为Session Storage和Local Storage。
(6)Session Storage关闭浏览器就会失效,而Local Storage则会一直存在。Web Storage就像一个非关系型数据库,由Key-Value对组成,可以通过JavaScript对其进行操作。
6.3 小结
(1)HTML 5 是互联网未来的大势所趋。