【发布时间】:2021-11-06 00:33:28
【问题描述】:
我正在尝试在我的网站上实施 CSP。我经常更改我的内联脚本,所以对于 CSP 来说,哈希对我来说是个坏主意
我读到,随机整数的 Nonce 可用于实现 CSP。
我正在使用 WordPress。下面是我的 CSP 标头。
Header add Content-Security-Policy "default-src 'self'; script-src unsafe-hashes 'self' https://milyin.com https://cdnjs.cloudflare.com https://cdn.tiny.cloud https:; object-src 'none';base-uri 'none';img-src https: data:;style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://www.google.com https:;report-uri https://milyin.com/?csp=true"
正如您可能知道的那样,内联脚本不会从中执行。那么如何实现呢。
最初的研究让我想到了哈希的想法,而我可以从 chrome 开发工具中获取脚本的哈希这一事实使它变得简单明了。
但是,对任何脚本进行最轻微的更改都需要我更改哈希值,这一事实令人头疼。
所以我听说过随机数。
请建议如何实现它,并(如果可能的话)告诉他们是否存在对像我这样的 wordpress 用户更简单的方法。
所以我有几个疑问:
-
什么是随机数?据我了解,这是我喜欢的随机整数。
-
我可以在所有脚本中使用相同的随机数吗?我的意思是我可以说
Header add Content-Security-Policy "default-src 'self'; script-src 'self' 'nonce-69'然后在我网站的每个脚本中输入<script nonce="69"吗? -
我需要经常更改 Nonce 吗?我的意思是,如果 Nonce 是恒定的,那么有人可以简单地使用相同的 nonce 放置注入脚本并让它工作。如何预防。
【问题讨论】:
标签: javascript php http-headers content-security-policy nonce