Content-Security-Policy: worker-src 指令

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上使用。自 2022 年 5 月以来,它已在各个浏览器中可用。

HTTP Content-Security-Policy (CSP) 的 worker-src 指令指定了 WorkerSharedWorkerServiceWorker 脚本的有效来源。

CSP 版本 3
指令类型 获取指令
回退

如果此指令缺失,用户代理在管理 worker 执行时,将首先查找 child-src 指令,然后是 script-src 指令,最后是 default-src 指令。

语法

http
Content-Security-Policy: worker-src 'none';
Content-Security-Policy: worker-src <source-expression-list>;

此指令可以具有以下值之一

'none'

不允许加载此类型的任何资源。单引号是强制性的。

<source-expression-list>

一个由源表达式值组成的空格分隔列表。如果资源类型与任何给定的源表达式匹配,则可以加载此类资源。对于此指令,以下源表达式值适用:

示例

违规情况

给定此 CSP 头

http
Content-Security-Policy: worker-src https://example.com/

WorkerSharedWorkerServiceWorker 被阻止且无法加载

html
<script>
  let blockedWorker = new Worker("data:text/javascript,…");
  blockedWorker = new SharedWorker("https://not-example.com/");
  navigator.serviceWorker.register("https://not-example.com/sw.js");
</script>

规范

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

浏览器兼容性

另见