现在才知道iframe的sandbox属性晚吗?

297 阅读2分钟

早上看论坛的一篇文章才知道iframe有sandbox这个属性,火速去MDN搜了下,可恶,又被我学到了。

链接:iframe - HTML(超文本标记语言) | MDN (mozilla.org)

以下是属性的相关介绍:

该属性对呈现在 iframe 框架中的内容启用一些额外的限制条件。属性值可以为空字符串(这种情况下会启用所有限制),也可以是用空格分隔的一系列指定的字符串。有效的值有:

  • allow-downloads-without-user-activation 实验性: 允许在没有征求用户同意的情况下下载文件。
  • allow-forms: 允许嵌入的浏览上下文提交表单。如果没有使用该关键字,则无法提交表单。
  • allow-modals: 允许嵌入的浏览上下文打开模态窗口。
  • allow-orientation-lock: 允许嵌入的浏览上下文锁定屏幕方向(译者注:比如智能手机、平板电脑的水平朝向或垂直朝向)。
  • allow-pointer-lock: 允许嵌入的浏览上下文使用 Pointer Lock API.
  • allow-popups: 允许弹窗 (例如 window.open, target="_blank", showModalDialog)。如果没有使用该关键字,相应的功能将自动被禁用。
  • allow-popups-to-escape-sandbox: 允许沙箱化的文档打开新窗口,并且新窗口不会继承沙箱标记。例如,安全地沙箱化一个广告页面,而不会在广告链接到的新页面中启用相同的限制条件。
  • allow-presentation: 允许嵌入的浏览上下文开始一个 presentation session (en-US)
  • allow-same-origin: 如果没有使用该关键字,嵌入的浏览上下文将被视为来自一个独立的源,这将使 same-origin policy 同源检查失败。
  • allow-scripts: 允许嵌入的浏览上下文运行脚本(但不能创建弹窗)。如果没有使用该关键字,就无法运行脚本。
  • allow-storage-access-by-user-activation 实验性: 允许嵌入的浏览上下文通过 Storage Access API (en-US) 使用父级浏览上下文的存储功能。
  • allow-top-navigation: 允许嵌入的浏览上下文导航(加载)内容到顶级的浏览上下文。
  • allow-top-navigation-by-user-activation: 允许嵌入的浏览上下文在经过用户允许后导航(加载)内容到顶级的浏览上下文。

一般来说属性allow-popsallow-same-originallow-scriptsallow-top-navigation用的比较多。 当前也可以了解下iframe的其他属性,如allowfullscreen, csp, referrerpolicy等。