如何在CSP中使用nonce

问题描述 投票:0回答:2

我一直在阅读有关使用带有随机数的内联脚本(数字仅使用一次)的 CSP 文档,但我仍然没有完全理解。

  • 我可以对不同的内联脚本使用相同的随机数吗?也就是说,我可以这样做吗?

HTTP层:

Content-Security-Policy: script-src 'nonce-2726c7f26c'

HTML 中内嵌Javascript

<script nonce="2726c7f26c">
  var inline = 1;
</script>
<script nonce="2726c7f26c">
  var inline2 = 2;
</script>
  • 你能给我推荐任何node.js函数来生成这样的随机数吗?我可以使用
    require('crypto')
    吗?
node.js content-security-policy
2个回答
24
投票

我的解决方案是正确的

我们为每个 HTTP 请求创建一个

nonce
,我们不应该为每个脚本创建一个。所以,我最初的解决方案是正确的。 CSP 规则进入 HTTP 层,因此每个 HTTP 请求都有一个随机数。


0
投票

这是一个创建 React + Webpack 应用程序以使用 Node 和 Nginx 服务器在每次页面刷新时生成 CSP 随机数的示例。

https://github.com/velusgautam/react-app-with-csp-nonce/

© www.soinside.com 2019 - 2024. All rights reserved.