CSP nginx随机数

我在将CSP添加到我的网站时遇到了一些问题。 我在我的nginxconfiguration中configuration了Content-Security-Policy-Report-Only。 我得到这个。

adsbygoogle.js:37 [仅限报告]拒绝应用内联样式,因为它违反了以下内容安全策略指令:“style-src http://example.com ”。 内联执行需要'unsafe-inline'关键字,一个散列('sha256-c + dT7QO / wB / DJJUeioTL / YNq09s5o1WF1vk5RjJU / 4I =')或一个随机数('nonce -…')。 (匿名函数)@ adsbygoogle.js:37

我search了解决scheme。 但是到处都是这样的:“打开”不安全的内联“”。 但其不安全的方法。 我想我可以使用“nonce-”。 但是我不知道如何在nginx conf中实现它。 你可以帮我吗?

修改你的nginxconfiguration以使用随机数是不够的。

必须为每个请求生成随机数,以便攻击者不能知道它们(否则,他们只能使用相同的随机数来注入脚本/资源)。

因此:

  • 如果您使用nginx作为反向代理,那么您的应用程序(在nginx之后)必须被修改,以便它将生成一个随机数,并将其添加到其输出中的所有<script>块和<style>块,提供相应的CSP头。
  • 如果您使用nginx来提供静态文件,请将<script><style>内容移到不同的文件中,计算它们的哈希值,然后使用哈希代替。

现在,回答这个通用的问题,让我们来谈谈具体问题。 从你的错误信息,我认为你在谈论//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js。 该脚本似乎使用内联样式,但不在您的控制之下,所以您不能使用随机样式。 除了要求Google改变脚本之外,我不知道你能做什么。