iframe的sandbox使用

时间:2021-09-02 11:36:04

sandbox:限制iframe的权限,解决安全性问题。

定义

如果被规定为空字符串(sandbox=""),sandbox 属性将会启用一系列对行内框架中内容的额外限制。
sandbox 属性的值既可以是一个空字符串(应用所有的限制),也可以是空格分隔的预定义值列表(将移除特定的限制)。

用法

1. sandbox=""
  应用所有限制

2. sandbox="allow-same-origin"
  允许 iframe 内容被视为与包含文档有相同的来源。

3. sandbox="allow-top-navigation"
  允许 iframe 内容从包含文档导航(加载)内容。
  可用于禁用外部网站的JS跳转、target="_parent"、target="_top"等

4. sandbox="allow-forms"
  允许表单提交。

5. sandbox="allow-scripts"
  允许脚本执行,即允许iframe运行脚本(但不创建弹出窗口)。
  可用于禁用外部网站的JS

6. sandbox="allow-popups"
  允许弹出窗口(如window.open,target="_blank")。

5. sandbox="allow-scripts"
  允许弹出窗口逃离沙箱:允许一个沙箱文件打开新窗口不强制使用沙盒。

实例

例如:此iframe只允许加载script,其他的全部限制。

<iframe width="930" height="630" sandbox="allow-scripts" src="http://www.baidu.com"></iframe>

遇到的问题:
iframe使用sandbox属性后,即使将所有值设为允许,页面中的flash也无法使用。

参考:
HTML <iframe> 标签的 sandbox 属性