CSP:沙箱

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

允许页面使用 指针锁定 API

allow-popups

允许弹出窗口(例如来自 Window.open()target="_blank"Window.showModalDialog())。如果未使用此关键字,则该功能将静默失败。

allow-popups-to-escape-sandbox

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

allow-presentation

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

allow-same-origin

如果未使用此标记,则资源将被视为来自一个特殊的来源,该来源始终无法通过 同源策略(可能阻止访问 数据存储/Cookie 和某些 JavaScript API)。

allow-scripts

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

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

允许资源使用 存储访问 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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅