【问题标题】:How to apply hash (sha-...) or nonce to header tag HTML?如何将哈希(sha-...)或随机数应用于标题标签 HTML?
【发布时间】:2018-06-19 20:29:51
【问题描述】:

我使用以下命令创建了 Angular 2 生产版本:

ng build --prod --aot

但是在 dist 文件夹下生成的文件(例如:main.0c05c6d4245461043e3f.bundle)被 CSP 阻止,从而导致一些应用的样式没有显示出来。

我检索到的错误是:

拒绝应用内联样式,因为它违反了以下内容安全策略指令

我检查了所有组件,但没有发现任何 CSS 样式的内联调用。可能是因为第三方插件?不然呢?

但是,我还想应用哈希或随机数(根据 chrome 建议)来解决 CSP 违规问题。

怎么做?

【问题讨论】:

  • 先看生成页面的来源,要么有

标签: angular inline production content-security-policy


【解决方案1】:

如果你不是,你应该使用 Chrome 的浏览器控制台来调试 CSP,它有非常详细的信息。这是一个内联样式示例:

它会告诉你违反的指令,包括完整的指令,样式在哪里(右侧的索引链接),以及你可以做些什么来修复它(在这种情况下,unsafe-inline、nonce 或一个哈希)。它甚至包括您可以使用的哈希值;如果您只说一种内联样式,您可以复制整个强大的(包括单引号)并将其包含在您的 style-src 中。

我通常不建议对内联样式使用哈希,除非您只有很少的内联样式并且您确定它们不会改变。如果您完全控制您的网站,您应该能够从代码中找到并删除它们,如果您使用某些 CMS,如 Wordpress(更糟糕的是,插件),几乎不可能找到并标记它们。

但为了安全起见,您也不应该只默认为 unsafe-inline,除非您发现完全不可能删除或散列所有内联样式。

【讨论】:

  • 故障排除后,问题出在服务器端。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
相关资源
最近更新 更多