Content-Security-Policy: sandbox 指令

Baseline 已广泛支持

此功能已得到良好确立,并在许多设备和浏览器版本中都可使用。自 ⁨2016 年 11 月⁩以来,它已在所有浏览器中可用。

HTTP Content-Security-Policy (CSP) sandbox 指令为请求的资源启用沙盒,类似于 <iframe>sandbox 属性。它对页面的行为施加限制,包括阻止弹出窗口、阻止插件和脚本的执行以及强制实施同源策略。

CSP 版本 1.1 / 2
指令类型 文档指令
此指令在 <meta> 元素中不受支持,也不受 Content-Security-policy-Report-Only 标头字段的支持。

语法

http
Content-Security-Policy: sandbox;
Content-Security-Policy: sandbox <value>;

其中 <value> 可以是以下可选值之一

allow-downloads

允许通过带有 download 属性的 <a><area> 元素下载文件,以及通过导致文件下载的导航来下载文件。无论用户是否单击链接,或者 JS 代码在没有用户交互的情况下启动下载,这都有效。

allow-forms

允许页面提交表单。如果未使用此关键字,表单将正常显示,但提交它不会触发输入验证、向 Web 服务器发送数据或关闭对话框。

allow-modals

允许页面通过 Window.alert()Window.confirm()Window.print()Window.prompt() 打开模态窗口,而 <dialog> 的打开则不受此关键字的限制。它还允许页面接收 BeforeUnloadEvent 事件。

allow-orientation-lock

允许资源锁定屏幕方向

allow-pointer-lock

允许页面使用 Pointer Lock API

allow-popups

允许弹出窗口(例如,由 Window.open()target="_blank" 创建)。如果未使用此关键字,弹出窗口将静默失败。

allow-popups-to-escape-sandbox

允许沙盒文档打开新窗口,而无需对其强制执行沙盒标志。例如,这将允许第三方广告被安全沙盒化,而无需对广告链接到的页面强制执行相同的限制。

allow-presentation

允许嵌入器控制 iframe 是否可以启动演示会话

allow-same-origin

允许沙盒资源保留其来源。否则,沙盒资源将被视为来自不透明来源,这确保它将始终无法通过同源策略检查,因此无法访问localstoragedocument.cookie 以及某些 JavaScript API。没有 allow-same-origin 关键字的沙盒资源的 Originnull

allow-scripts

允许页面运行脚本(但不创建弹出窗口)。如果未使用此关键字,则不允许此操作。

allow-storage-access-by-user-activation 实验性

允许资源使用 Storage Access API 请求访问父级的存储功能。

allow-top-navigation

允许资源导航顶级浏览上下文(即名为 _top 的上下文)。

allow-top-navigation-by-user-activation

允许资源导航顶级浏览上下文,但仅限于用户手势发起时。

allow-top-navigation-to-custom-protocols

允许导航到浏览器内置的或网站注册的http 协议。此功能也会被 allow-popupsallow-top-navigation 关键字激活。

注意: allow-top-navigation 和相关值仅对嵌入式文档(例如子 iframe)有意义。对于独立文档,这些值不起作用,因为顶级浏览上下文就是文档本身。

示例

http
Content-Security-Policy: sandbox allow-scripts;

规范

规范
内容安全策略级别 3
# directive-sandbox

浏览器兼容性

另见