CSP:沙箱
HTTP Content-Security-Policy
(CSP) 的 sandbox
指令为请求的资源启用沙箱,类似于 <iframe>
的 sandbox
属性。它对页面的操作施加限制,包括阻止弹出窗口、阻止插件和脚本的执行以及强制实施同源策略。
CSP 版本 | 1.1 / 2 |
---|---|
指令类型 | 文档指令 |
此指令在 <meta> 元素或 Content-Security-policy-Report-Only 标头字段中不受支持。 |
语法
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 请求访问父级的存储功能。
-
允许资源导航顶级浏览上下文(名为
_top
的那个)。 -
允许资源导航顶级浏览上下文,但仅在由用户手势启动时才允许。
-
允许导航到浏览器内置或 由网站注册 的非
http
协议。此功能也由allow-popups
或allow-top-navigation
关键字激活。
注意:allow-top-navigation
和相关值仅对嵌入式文档(如子 iframe)有意义。对于独立文档,这些值无效,因为顶级浏览上下文是文档本身。
示例
Content-Security-Policy: sandbox allow-scripts;
规范
规范 |
---|
内容安全策略级别 3 # directive-sandbox |
浏览器兼容性
BCD 表格仅在浏览器中加载