HTML5:是W3C制定的新一代HTML语言的标准,定义了很多新标签、新事件。
一、HTML 5新标签
①<video>、<audio>等标签,需要加入XSS filter的黑名单中。
②iframe的新属性sandbox:<iframe>加载的内容会被视为一个独立的“源”,其中的脚本将被禁止执行。有四种值可以选择:allow-same-origin、allow-top-navigation、allow-forms、allow-scripts。
③Link Types:noreferrer:为<a>和<area>标签定义了一个新的Link Types:noreferrer。
④Canvas:让JS可以在页面中直接操作图片对象,也可以操作像素,构造出图片区域;其强大的功能甚至可以用来破解验证码,大大降低了攻击门槛。
二、其他安全问题:
①Cross-Origin Resource Sharing:尽量不使用通配符*,使用更多HTTP header做更精确的控制。
②PostMessage 跨窗口传递消息:postMessage允许每一个window(包括当前窗口、弹出窗口、iframes等)对象往其他的窗口发送文本消息,从而实现跨窗口的消息传递,这个功能是不受同源策略控制的,但是可能会导致DOM based XSS产生。
③Web Storage:就像一个非关系型数据库,由key-value对组成,可以通过JS对其进行操作。分为Session storage和Local storage,Session storage关闭浏览器就会失效,而Local storage一直存在。
安全隐患:攻击者可能会将恶意代码保存在Web storage中,从而实现跨页面攻击。
三、扩展知识
浏览器存储信息的方式:
- Cookie:用于保存登录凭证和少量信息,其最大长度的限制决定了不可能在cookie中存储太多的信息
- Flash Shared Object:Adobe自己的功能,不是一个通用化标准。
- IE UserData:微软自己的功能,不是一个通用化标准。
Web storage:W3C委员会制定的本地存储功能。