在应用启动时显示内容安全政策

时间:2016-01-01 09:38:04

标签: ember.js ember-cli content-security-policy

我正在尝试设置CSP,而Ember正在做一些有趣的事情,很难描述什么。我正确地配置了一个部分,而另一部分却失败了。或突然,livereload被阻止。或者它说script-src没有定义,并且回落到default-src,如果它不是谎言,这很好。我知道ember-cli-content-security-policy is processing CSP允许livereload等等,但我不知道何时/如何做到这一点。我想验证我配置的CSP是否存在ember-cli处理,因为经过一个小时的调试我不再相信它了。

长话短说:我希望在我的应用启动时看到CSP,就在版本显示时。我不想看到我配置的CSP,但是Ember正在使用的那个,可能会也可能不会相同:这正是我想要找到的。

我如何告诉Ember“告诉我你正在使用的CSP”?

修改

感谢@Bek提供有关检查请求标头的提示。

使用此配置(从ember-cli-content-security-policy自述文件中复制粘贴):

ENV.contentSecurityPolicy = {
  'default-src': "'none'",
  'script-src': ["'self'", "https://cdn.mxpnl.com"], // Allow scripts from https://cdn.mxpnl.com
  'font-src': ["'self'", "http://fonts.gstatic.com"], // Allow fonts to be loaded from http://fonts.gstatic.com
  'connect-src': ["'self'", "https://api.mixpanel.com", "http://custom-api.local"], // Allow data (ajax/websocket) from api.mixpanel.com and custom-api.local
  'img-src': "'self'",
  'style-src': ["'self'", "'unsafe-inline'", "http://fonts.googleapis.com"], // Allow inline styles and loaded CSS from http://fonts.googleapis.com
  'media-src': null // `media-src` will be omitted from policy, browser will fallback to default-src for media resources.
}

我得到了这些标题:

Content-Security-Policy-Report-Only: default-src 'none'; script-src 'self',https://cdn.mxpnl.com,e,l,f,', ,',u,n,s,a,f,e,-,e,v,a,l,' localhost:49152 0.0.0.0:49152; font-src 'self',http://fonts.gstatic.com,e,l,f,'; connect-src 'self',https://api.mixpanel.com,http://custom-api.local,l,f,' ws://localhost:49152 ws://0.0.0.0:49152 http://undefined:16013/csp-report; img-src 'self'; style-src 'self','unsafe-inline',http://fonts.googleapis.com,l,f,'; media-src null; report-uri http://undefined:16013/csp-report;

似乎确实ember-cli-content-security-policy正在做一些有趣的事情。不知道如何解决这个问题。我打开了issue

1 个答案:

答案 0 :(得分:2)

内容安全策略是从主机服务器发送的简单标题(附加到所有响应),您可以随时查看它转到chrome dev tools networks部分

  

我得到这些标题:
  似乎确实是ember-cli-content-security-policy正在做一些有趣的事情。不知道如何解决这个问题。我已经开了一个问题。

此问题位于v0.4.0但不在master中(我猜它已修复)所以现在您可以从master安装

"ember-cli-content-security-policy": "rwjblue/ember-cli-content-security-policy#master",