我正在尝试设置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。
答案 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",