Content-Security-Policy HTTP标头对script-src

时间:2017-07-12 11:23:29

标签: javascript http security browser http-headers

我正在关注Google's strict CSP policy我的CSP标头,我正在添加nonce,但是我在浏览器中不断收到此错误:

  

拒绝加载脚本   ' http://localhost:8080/client/dist/inline.6e0c61259742e86be1dd.bundle.js'   因为它违反了以下内容安全策略指令:   " script-src nonce-XVlBzgbaiCMRAjWwhTHctcuAxhxKQFDaFpLSjFbcXoEFfRsWxP   '不安全直插' '不安全-EVAL' '严格动态' https:http:"。   '严格动态'存在,因此禁用基于主机的白名单。

如您所见,nonce匹配脚本中的nonce:

<script type="text/javascript" src="/client/dist/inline.6e0c61259742e86be1dd.bundle.js" nonce="XVlBzgbaiCMRAjWwhTHctcuAxhxKQFDaFpLSjFbcXoEFfRsWxP"></script>

这是我用于script-src的CSP标头。 &#34;%s&#34;表示随机生成的nonce,它将在响应上设置标头之前进行插值:

script-src nonce-%s 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:;

我在这里做错了什么?

1 个答案:

答案 0 :(得分:4)

您似乎没有将nonce值括在单引号中 - 而不是nonce-%s,它应该在您的政策中'nonce-%s'

由于您使用的是Google示例,因此您可能知道使策略安全所需的其他指令(例如object-srcbase-uri),但为了以防万一,请务必使用工具就像CSP Evaluator完成一样,在完成后检查你的政策。