gpt4 book ai didi

security - 存在“strict-dynamic”,因此禁用了基于主机的白名单

转载 作者:行者123 更新时间:2023-12-05 02:57:18 25 4
gpt4 key购买 nike

我正在从源加载一个虚拟 JS 脚本,例如:

<script src="http://www.this-host.test/loadMe.js"></script>

CSP header 设置为:

script-src 'self' 'strict-dynamic' 'nonce-{randomString}';

由于脚本源来自它的原始主机 并且被CSP 允许 header 比 loadMe.js应该加载并执行。

相反,我得到:

Refused to load the script 'http://www.this-host.test/loadMe.js' because it 
violates the following Content Security Policy directive: "script-src 'self' 'strict-dynamic' 'nonce-{randomString}';.
'strict-dynamic' is present, so host-based whitelisting is disabled.

测试于 Macintosh; Mac OS X 10_15_2 , 浏览器 Chrome/79.0.3945.117, Firefox/71.0 .

我在 Safari 上没有收到这条消息虽然。

也许值得一提的是我正在本地测试它。


反正我不想用nonce-{randomString}什么时候CSP header 允许从原始主机加载资源。

对此有什么想法吗?

最佳答案

根据 csp.withgoogle.com服务器:

On its own, 'strict-dynamic' causes the browser to rely only on nonces or hashes and ignore the URI whitelist in script-src, for backwards compatibility reasons.

这告诉我应该这样定义它:

<script nonce="{randomString}" src="http://www.this-host.test/loadMe.js"></script>

如果loadMe.js"加载另一个 script src文件在运行时定义如下:

<script strict-dynamic nonce="{randomString}" src="http://www.this-host.test/loadMe.js"></script>

当然要相信loadMe.js源文件。

关于security - 存在“strict-dynamic”,因此禁用了基于主机的白名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59848978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com