【问题标题】:Configure CSP in an Ember CLI application which uses http-mock在使用 http-mock 的 Ember CLI 应用程序中配置 CSP
【发布时间】:2015-03-29 06:18:32
【问题描述】:

按照http://www.ember-cli.com/#ember-data 的建议,我正在使用带有 Ember CLI 的 http-mock。我了解 CSP 的基本概念,但我不了解它在 Ember CLI 应用程序中的配置。

如何将我的应用程序配置为接受对localhost:4200/api/ 的请求,以避免在开发过程中出现这种情况:

Content Security Policy violation: {
    "csp-report": {
        "document-uri":"http://localhost:4200/products",
        "referrer":"",
        "violated-directive":"style-src 'self'",
        "effective-directive":"style-src",
        "original-policy":"default-src 'none'; script-src 'self' 'unsafe-eval' localhost:35729 0.0.0.0:35729; font-src 'self'; connect-src 'self' ws://localhost:35729 ws://0.0.0.0:35729 http://0.0.0.0:4200/csp-report; img-src 'self'; style-src 'self'; media-src 'self'; report-uri http://0.0.0.0:4200/csp-report;",
        "blocked-uri":"",
        "source-file":"chrome-extension://alelhddbbhepgpmgidjdcjakblofbmce",
        "line-number":1,"column-number":20481,"status-code":200
    }
}

【问题讨论】:

    标签: ember.js ember-cli http-mock


    【解决方案1】:

    您可以通过编辑config/environment.js 来调整您的内容安全策略。我相信在您的情况下,connect-src 与抛出的错误有关(编辑:看起来style-src 正在被违反,可能是由 Chrome 扩展真棒截图)。添加* 将允许它连接到任何东西。

    var ENV = {
    
      ...
    
      contentSecurityPolicy: {
        'default-src': "'none'",
        'script-src': "'self'",
        'font-src': "'self'",
        'connect-src': "'self' *",
        'img-src': "'self'",
        'style-src': "'self' *",
        'media-src': "'self'"
      }
    }
    

    或者更具体地说,您可以添加:

    ...
    'connect-src': "'self' 'localhost:4200'",
    ...
    

    此外,如果您只想将其添加到您的开发环境中,请将其放入:

    if (environment === 'development') {
      ENV.contentSecurityPolicy = {
        ...(policies)...
      }
    }
    

    有关 CSP 的更多信息,请访问 ember-clihttps://www.npmjs.com/package/ember-cli-content-security-policy

    更多关于 CSP 的一般信息:http://content-security-policy.com/

    【讨论】:

    • 我尝试了这两个版本,但它们都不起作用。我仍然收到相同的错误消息。
    • 仔细查看您的错误消息,我看到了"violated-directive":"style-src 'self'" .. 尝试添加'style-src': "'self' *"。看起来 Chrome 扩展程序正在注入样式表?谷歌搜索它建议“真棒屏幕截图” - 尝试禁用?
    • 可能是内联样式导致了警告。将'unsafe-inline' 添加到style-src 以解决该问题。
    • 它确实是一个 Chrome 扩展程序。我从来没有想过。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多