Facebook登录所需的CSP规则

Max*_*ime 5 facebook-javascript-sdk content-security-policy

允许Facebook登录的必备规则是哪些?

我目前允许这些:

defaultSrc: ["'self'",
        '*.facebook.com',
        '*.akamaihd.net'],
        scriptSrc: ["'self'",
         '*.facebook.com',
         '*.akamaihd.net',
         "'unsafe-inline'",
         "'unsafe-eval'"],
        frameSrc: [
        "'self'",
        '*.facebook.com',
        '*.akamaihd.net',
        styleSrc: ["'self'",
         "'unsafe-inline'"],
        imgSrc: ["'self'",
        '*.akamaihd.net',
        '*.facebook.com']
Run Code Online (Sandbox Code Playgroud)

Gus*_*ira 2

我只用

{
  'default-src': "'none'",
  'script-src': "'self' 'unsafe-inline' 'unsafe-eval' connect.facebook.net",
  'connect-src': "'self'",
  'img-src': "'self' www.facebook.com",
  'style-src': "'self' 'unsafe-inline'",
  'frame-src': "s-static.ak.facebook.com static.ak.facebook.com www.facebook.com",
}
Run Code Online (Sandbox Code Playgroud)

但我不确定是否缺少任何东西。我认为您不需要允许,*.akamaihd.net因为这只是 Facebook 使用的 CDN,并且 Facebook 登录不需要它。

更新:正如下面的评论所述,该解决方案违背了 CSP 的目的,并且绝对不推荐,因为它不安全。

  • 有没有办法在不添加“unsafe-inline”和“unsafe-eval”的情况下使其工作?这些选项可能会严重降低 CSP 的有效性 (10认同)
  • 这真的很糟糕,Facebook 需要解决这个问题,``'script-src':'unsafe-inline''unsafe-eval'` 违背了 CSP 的初衷……你最终找到了办法吗? (3认同)