首页 > 解决方案 > 内容安全策略 (CSP) 在 Firefox 中阻止有效随机数

问题描述

我有一个对 GET 请求生成 http/html 响应的 Web 服务器。我添加了以下响应标头:content-security-policy: default-src 'nonce-Z2lnkA9A00KuJsXvx94P6hyDdyRUaxFCiV9lUS0XgWo' 'self' *.my-org.net *.my-org.com fonts.googleapis.com fonts.gstatic.com *.amazon.com;.

然后我将以下标签添加到我的 html 文档中:

<!-- these tags are blocked in firefox -->
<style nonce="Z2lnkA9A00KuJsXvx94P6hyDdyRUaxFCiV9lUS0XgWo"> some inline code ....
<script nonce="Z2lnkA9A00KuJsXvx94P6hyDdyRUaxFCiV9lUS0XgWo"> some inline code ....

<!-- this tag works as expected in all browsers-->
<script src="/scripts/utils.js"></script>

此代码在 chrome 和 edge 中正确执行,但 firefox 阻止了内联脚本标签,同时允许执行获取的脚本标签。

Firefox 控制台中的错误是: 内容安全策略:页面的设置阻止了内联资源的加载(“default-src”)。

标签: firefoxcontent-security-policy

解决方案


Firefox 似乎不支持 default-src 中的随机数。如果您使用必要的源指定 script-src 和 style-src 指令,它应该可以工作。我用 Firefox 77 和 79 对此进行了测试。


推荐阅读