如何将 nonce 属性随机 id 与内联 JavaScript 相关联

问题描述

我要在网站上添加内容安全策略限制。所以内联 JS 和 CSS 不再可用。但是我应该在每个页面上都有一些内联 JS,因此我添加了 nonce 属性。 我应该为页面上的每个内联脚本和 css 生成新的随机 id

<html>
<head>
<script src="url/example1.js" nonce="id-1"/>
<script src="url/example2.js" nonce="id-2"/>
<script src="url/example3.js" nonce="id-3"/>
</head>
</html>

或者我可以生成一个 id 并为页面上的每个 JS 和 CSS 重复使用它(是否像上面的方式一样安全)?

<html>
<head>
<script src="url/example1.js" nonce="id-1"/>
<script src="url/example2.js" nonce="id-1"/>
<script src="url/example3.js" nonce="id-1"/>
</head>
</html>

对我来说,这两种方法都很好,但 CSP 标头有长度限制(1024 个字符)。每个 id 看起来都像“nonce-{20..30 个字符}”。存在下一个新的内联 JS 可能被拒绝的风险...

解决方法

https://www.w3.org/TR/CSP3/#security-nonces 表示每次提交策略时都应该生成一个唯一值。这意味着您可以在整个文档中重复使用随机数。在下一页加载时,您需要一个新的随机数。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...