HTML 5将针对iframe元素增加sandbox属性,可以防止不信任的Web页面执行某些操作 。HTML 5规范的编辑Ian Hickson谈到了sandbox的好处,它可以防止如下操作:
◆访问父页面的DOM(从技术角度来说,这是因为相对于父页面iframe已经成为不同的源了)
◆执行脚本
◆通过脚本嵌入自己的表单或是操纵表单
◆对cookie、本地存储或本地SQL数据库的读写
HTML 5的修订历史页面还提到了sandbox的其他特性:
◆禁用插件
◆禁止其他浏览上下文的导航
◆禁止弹出窗口和模式对话框
◆iFrames因安全问题而臭名昭著,这主要是因为iFrames常常被用于嵌入第三方内容,而后者则可能会执行某些恶意操作 。
◆sandbox通过限制被嵌入内容所允许的操作而提升iFrames的安全性 。这种方式将沙箱内容与父页面进行了分离,因此限制了被嵌入内容的权限 。
与sandbox一起出来的还有其MIME类型:text/html-sandboxed 。Hickson说到:
- 使用HTML5构建下一代的Web Form
- HTML5标准最新技术预览
- HTML5特性增强 Adobe发布AIR2.0测试版本
- HTML5网页3D技术标准发布 无需插件即可将
- HTML5 File API初探 支持文件拖放上传功
text/html-sandboxed MIME类型确保用户不会访问到不可信的内容 。它包含两部分内容:首先,如果用户直接访问页面时,浏览器不可以渲染那些具有text/html-sandboxed MIME类型的页面 。目前所有浏览器都支持这一点,这些浏览器会下载页面的标记但不会渲染页面;其次,支持sandbox属性的浏览器需要渲染具有text/html-sandboxed MIME类型的iframes(但会受到sandbox属性中所设定的权限限制)目前为止,还没有浏览器实现这一点,Google Chrome也是如此(它会渲染父页面,但却下载iframe内容而非在iframe中对其进行渲染) 。因此目前还没法使用该项技术,除非Google更新Chrome以支持这一点(从理论上来说,其他的浏览器厂商在实现了对sandbox属性的支持后就会实现该技术,让我们拭目以待吧) 。
目前,只有Google Chrome 4.0使用了sandbox,Firefox、IE8和Safari都还没有实现这一点,但相信不久之后这些浏览器都会实现的 。围绕着HTML 5
【责任编辑:red7 TEL:(010)68476606】