CSP仅报告模式下大量同域请求触发connect-src违规误报问题求助
CSP仅报告模式下大量同域请求触发connect-src违规误报问题求助
我最近碰到个挺棘手的CSP报告问题,想请各位大佬帮忙分析下。
我们内部运行的一个应用,采用仅报告模式(通过Content-Security-Policy-Report-Only响应头)配置的CSP规则如下:
script-src 'self'; default-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self' https://sentry.internal.domain.com; report-uri https://sentry.internal.domain.com/api/.....
应用里的多个页面会通过JavaScript(用了fetch和jQuery)向同域名的接口请求数据——API端点和JS资源都是从同一个域名加载的,按道理'self'完全应该覆盖这些请求,而且所有请求都是HTTPS协议,不存在不安全的情况。
但奇怪的是,我们本地部署的Sentry实例收到了大量CSP违规报告,几乎每个XHR请求都触发了connect-src指令的违规。可我自己无论怎么测试都没法复现这个问题:换了好几个主流浏览器的开发者工具,都看不到任何CSP违规提示;特意做了个负面测试(添加了一个指向不在connect-src列表里的域名的XHR请求),开发者控制台里正常显示了预期的错误。
以下是Sentry事件里的关键信息(我暂时无法获取原始的CSP文档):
{ "csp": { "effective_directive": "connect-src", "blocked_uri": "https://app.internal.domain.com/app/endpoint/", "document_uri": "https://app.internal.domain.com/app/", "original_policy": "style-src 'self' 'unsafe-inline'; script-src 'self'; connect-src 'self' https://sentry.internal.domain.com; default-src 'self'; report-uri https://sentry.internal.domain.com/api/16/security/?sentry_key=abcd", "referrer": "", "status_code": 200, "violated_directive": "connect-src", "disposition": "report" }, "culprit": "connect-src", "location": "app.internal.domain.com", "logentry": { "formatted": "Blocked 'connect' from 'app.internal.domain.com'" }, "metadata": { "directive": "connect-src", "message": "Blocked 'connect' from 'app.internal.domain.com'", "uri": "app.internal.domain.com" }, "request": { "url": "https://app.internal.domain.com/app/", "headers": [ [ "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0" ] ] }, "title": "Blocked 'connect' from 'app.internal.domain.com'", "type": "csp" }
这些违规报告来自不同的操作系统版本和浏览器,有没有朋友遇到过类似情况,或者能指点下可能的原因?
备注:内容来源于stack exchange,提问作者ercpe
相关产品推荐
相关产品推荐

