【问题标题】:Chrome intermittently reject FB SDK due to CSP header由于 CSP 标头,Chrome 会间歇性拒绝 FB SDK
【发布时间】:2020-09-07 20:27:17
【问题描述】:

我们在我们网站的关键区域使用内容安全策略,使用“nonce”方法,将随机 nonce 添加到脚本标签中,此 nonce 在我们的 CSP 策略中列入白名单。

例如:

"script-src data: 'unsafe-inline' 'unsafe-eval' 'nonce-42d55d4787a9898dc31a5a8fe9030ab6' 'strict-dynamic' https: ; upgrade-insecure-requests; block-all-mixed-content; report-uri https://xxx.report-uri.com/r/d/csp/enforce;",

然后我们在 FB SDK 中加载如下:

<script async defer src="https://connect.facebook.net/en_GB/sdk.js" nonce='42d55d4787a9898dc31a5a8fe9030ab6'></script>

这在 99% 的情况下都可以正常工作,但我们的报告 URI 统计数据显示我们在 Chrome 上随机拒绝了上述脚本

{
    "csp-report": {
        "document-uri": "https://xxx",
        "referrer": "xxx",
        "effective-directive": "script-src-elem",
        "original-policy": "script-src data: 'unsafe-inline' 'unsafe-eval' 'nonce-[removed]' 'strict-dynamic' https:  ;  upgrade-insecure-requests; block-all-mixed-content;  report-uri https://xxx.report-uri.com/r/d/csp/enforce;",
        "blocked-uri": "https://connect.facebook.net/en_GB/sdk.js"
    }
}

总是同样的问题,'script-src-elem' 失败(应该回退到 'script-src' 并且将随机数正确列入白名单)

我很困惑为什么这在大多数情况下都有效,但在其他情况下却失败了。我可以刷新页面并偶尔重现这一点,然后再次刷新就可以了。

我能想到的要么是 Chrome 的错误,要么是 FB SDK 做的奇怪的事情......?

有什么想法吗?

【问题讨论】:

    标签: google-chrome facebook-javascript-sdk content-security-policy


    【解决方案1】:

    这是由于一个 Chrome 错误,现已修复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 2022-08-09
      • 2018-09-22
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      相关资源
      最近更新 更多