CSP: script-src-elem

HTTP Content-Security-Policy(CSP 内容安全性策略)中的 script-src-elem 指令指定了 JavaScript <script> 元素的有效来源。

这个指令仅在 <script> 元素(脚本请求和块)指定有效的来源。它不适用于触发脚本执行的其他 JavaScript 源,例如内联脚本事件处理程序(onclick)、在“unsafe-eval”(不安全地执行字符串表达式)检查下的 (en-US)脚本执行方法和 XSLT 样式表(可以使用 script-src (en-US) 为所有 JavaScript 脚本源指定有效来源,也可以使用 script-src-attr (en-US) 仅为内联样式脚本处理程序指定有效源)。

CSP 版本 3
指令类型 fetch 指令
default-src 回落 是。如果这个指令不存在,则用户代理将查找 script-src (en-US) 指令,如果两个都不存在,则回落到 default-src 指令。

语法

script-src-elem 策略可以允许一个或者多个源:

http
Content-Security-Policy: script-src-elem <source>;
Content-Security-Policy: script-src-elem <source> <source>;

script-src-elem 可以与 script-src (en-US) 一起使用:

http
Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src-elem <source>;

<source> 可以是 CSP 源值 (en-US)中的任意一个。

请注意,这套相同的值可以用于所有 fetch 指令(以及许多其他的指令 (en-US))。

示例

违规的案例

给定此 CSP 标头:

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

…以下脚本被阻止,不会加载和执行:

html
<script src="https://not-example.com/js/library.js"></script>

规范

Specification
Content Security Policy Level 3
# directive-script-src-elem

浏览器兼容性

BCD tables only load in the browser

参见