Content-Security-Policy: script-src-elem 指令

Baseline 已广泛支持

此功能已成熟,可跨多个设备和浏览器版本使用。自 2022 年 12 月起,所有浏览器均已提供此功能。

HTTP Content-Security-Policy (CSP) script-src-elem 指令指定 JavaScript <script> 元素的有效来源。

此指令仅指定 <script> 元素(包括脚本请求和代码块)中的有效来源。它不适用于其他可触发脚本执行的 JavaScript 来源,例如内联脚本事件处理程序 (onclick)、通过“unsafe-eval”检查控制的脚本执行方法以及 XSLT 样式表。(可以使用 script-src 为所有 JavaScript 脚本来源指定有效来源,或者只使用 script-src-attr 为内联脚本处理程序指定有效来源。)

CSP 版本 3
指令类型 获取指令
default-src 回退 是的。如果此指令缺失,用户代理将查找 script-src 指令,如果两者都缺失,则回退到 default-src 指令。

语法

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

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

'none'

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

<source-expression-list>

一个空格分隔的源表达式值列表。如果此类型的资源与任何给定的源表达式匹配,则可以加载它们。对于此指令,Fetch 指令语法中列出的任何源表达式值都适用,但 'unsafe-hashes' 除外。

script-src-elem 可以与 script-src 结合使用

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

示例

违规案例

给定此 CSP 头

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

...以下脚本被阻止,不会被加载或执行

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

规范

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

浏览器兼容性

另见