【问题标题】:Adding a Content Security Policy vs above the fold css添加内容安全策略与折叠css
【发布时间】:2020-12-12 20:09:46
【问题描述】:

我正在我的网站上实施内容安全政策。我目前有 首屏 内容的页面 css,以“取悦”Google 见解并为最终用户创建一个加载速度更快的网站。 Google 还为 首屏 内容推荐页面 CSS,这就是我所做的。

由于内容安全政策禁用了css,这意味着如果我添加它,页面将无法正常显示,所以我不确定该怎么做。看来我有两个选择。

  1. 完全忘记添加安全内容策略并保持原样。

或者

  1. 添加安全内容策略并将所有 css 放入外部文件,但这会在 Google 页面洞察中创建“呈现阻止内容”消息,这可能会影响用户点击率和可能的 SEO。

Surley 还有另一种方式???

提前感谢您的所有建议。 埃佐

【问题讨论】:

  • 您有第三个选择 - 保留 CSP 并将 'unsafe-inline''nonce-value' 添加到 style-src 指令。
  • 我可以使用 nonce 解决这个问题,但我很困惑,因为教程说 nonce 是一个“一次性数字”,需要随机生成。我在网站上添加了以下内容,其中 nonce 值是我刚刚编造的。在 html 页面上,我将
  • 是的,在每个请求上生成一个新的nonce 非常安全。你甚至可以为add_header in Nginx 做到这一点。或者,您可以使用 'sha256-value' ('hash-value') 令牌代替 'nonce' - 只有在更改 <style></style> 内容时才需要重新生成它。

标签: css security content-security-policy policy


【解决方案1】:

CSP 是一个非常强大的工具来保护您的网站,如果不利用它会很可惜。 将unsafe-inline 用于script-src 指令确实非常不安全。 但是,style-src 指令的 unsafe-inline 被认为是可以的,因为它不能用于 XSS。

我不知道您使用的是哪个网站漏洞检查器(人/工具),但您可以查看CSP scan of github.com,看到他们也有style-src: 'unsafe-inline',并且仍然在评分器上得分 A- (迄今为止同类最佳)。

使用扫描器确保您正确构建 CSP,并且没有留下我们的关键元素,例如 base-uriobject-src 等。

如果您发布您现在拥有的网站/CSP,我可以提供更多帮助。

【讨论】:

  • 嗨,我可以使用 nonce 解决这个问题,但我很困惑,因为所有教程都说 nonce 是一个“一次性数字”,需要随机生成。我在网站上添加了以下内容,其中 nonce 值是我自己编造的。
  • @ezzo 如果你使用硬编码的随机数,它会破坏这个机制的目的。这个想法是攻击者无法访问或知道随机数。如果他们发现了对您网站的注入,并且知道 nonce,他们只会将其与 XSS 有效负载一起注入:<script nonce="HARD_CODED_NONCE">alert("XSS pwned")</script> 这就是为什么 nonce 需要是动态且不可预测的 - 所以附件无法注入它。
  • 我注意到 CSPScanner.com 是您自己的产品。请不要spam我们。您必须披露您与您推广的产品或服务的任何关系。这不是建立品牌知名度的正确场所。
猜你喜欢
  • 2021-07-27
  • 2017-09-30
  • 2023-01-07
  • 2019-02-11
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 2023-02-04
相关资源
最近更新 更多