HTML <iframe> sandbox 属性
如果指定了空字符串(sandbox=""),该属性对呈现在 iframe 框架中的内容启用一些额外的限制条件
sandbox 属性的值既可以是一个空字符串(将会启用所有的限制),也可以是用空格分隔的一系列指定的字符串
HTML 5 通过 sandbox 属性提升 iFrame 的安全性
sandbox 属性可以防止不信任的 Web 页面执行某些操作
HTML 5规范的编辑 Ian Hickson 谈到了 sandbox 的好处,它可以防止如下操作
- 访问父页面的 DOM ( 从技术角度来说,这是因为相对于父页面 iframe 已经成为不同的源了 )
- 执行脚本
- 通过脚本嵌入自己的表单或是操纵表单
- 对cookie、本地存储或本地SQL数据库的读写
语法
<iframe sandbox="value"></iframe>
属性值
值 | 描述 |
---|---|
"" | 启用所有限制条件 |
allow-same-origin | 允许将内容作为普通来源对待 如果未使用该关键字,嵌入的内容将被视为一个独立的源 |
allow-top-navigation | 嵌入的页面的上下文可以导航 (加载)内容到顶级的浏览上下文环境。如果未使用该关键字,这个操作将不可用 |
allow-forms | 允许表单提交 |
allow-scripts | 允许脚本执行 |
浏览器支持
Internet Explorer 10、Firefox、Chrome 和 Safari 支持 sandbox 属性
Opera 和 Internet Explorer 9 及之前的版本不支持 sandbox 属性
范例
带有额外限制的 <iframe>
<iframe src="/static/media/html/demo_iframe_sandbox.htm" sandbox=""></iframe>
HTML 4.01 与 HTML5 之间的差异
sandbox 属性是 HTML5 中的新属性
更多范例
链接 | 描述 |
---|---|
一个允许表单提交的 <iframe> sandbox | 启用一系列额外限制,但允许表单提交 |
一个允许脚本和访问服务器内容的 <iframe> sandbox | 启用一系列额外限制,但允许脚本和访问服务器内容 |