分辨率选项:
1. 使用 SHA-256 哈希
如果此类违规的数量相对较少,您可以添加它们的哈希值。例如,如果您在日志中看到此内容:
Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self' 'report-sample'". Either the 'unsafe-inline' keyword, a hash ('sha256-YpcdPia2p132TdnpnY8zwrWWSqByEKGZBY5iqsLBkSg='), or a nonce ('nonce-...') is required to enable inline execution. Note that hashes do not apply to event handlers, style attributes and javascript: navigations unless the 'unsafe-hashes' keyword is present.
添加'sha256-YpcdPia2p132TdnpnY8zwrWWSqByEKGZBY5iqsLBkSg='
您可能还需要'unsafe-hashes'
- 取决于上下文。
注意:这种方法不容易维持。样式的微小变化将迫使您重新创建散列。仅当您拥有少量此类内联脚本时,它才有用。
2. 随机数
您可以使用 nonce 来“祝福”内联样式并批准它们。但是,即使是提倡 CSP 随机数的 Google 专家通常也不会将它们部署在style-src
- 仅在script-src
.
注意:这种方法很难部署。需要为每个页面加载生成一个唯一的随机数。
3. 使用'unsafe-inline'
- 很好style-src
(不适合script-src
)
确实,即使设置 CSP
style-src 'unsafe-inline' 'self' someurl.com;
也比 99.9% 的站点安全得多。超过完全不限制的accounts.google.comstyle-src
。
Github有一个很棒的高质量 CSPstyle-src: 'unsafe-inline'
祝你好运!