Javascript 谷歌分析内容安全策略

Javascript 谷歌分析内容安全策略,javascript,google-analytics,http-headers,content-security-policy,Javascript,Google Analytics,Http Headers,Content Security Policy,我有内容安全策略: default-src 'none'; style-src 'self'; script-src 'self' https://www.google-analytics.com; img-src 'self' https://www.google-analytics.com; connect-src 'self'; 在我的页面上,我已将内联GA代码放入异步脚本中: <script src="/javascript/ga.js" async></script

我有内容安全策略:

default-src 'none';
style-src 'self';
script-src 'self' https://www.google-analytics.com;
img-src 'self' https://www.google-analytics.com;
connect-src 'self';
在我的页面上,我已将内联GA代码放入异步脚本中:

<script src="/javascript/ga.js" async></script>

这会导致CSP错误:

拒绝加载脚本的数据:application/javascript;base64,KGZ1bmN0aW9uKCkgewoJLy8gaHR0cHM6Ly9kZXZl…07cgl9owojz2eucmvctb3zlid0gbm9vcgzuowjd2luzg93w2dhtmlftzv0gpsbnytskfkokts='因为它违反了以下内容安全策略指令:“script src'self'”

有没有办法从JS文件中提供此脚本,如果没有,我需要如何更改CSP?

请参阅和upvote

这是由uBlock Origin引起的,这是因为
data
URL未被列入白名单:

script-src data:;
这样做没有任何意义,因为如果不受信任的数据被用作应用程序中任何位置的URL,或者如果攻击者可以插入使用此类URL的标记,则这可能会使应用程序易受攻击。这当然取决于注入点和允许的字符

当然,您应该将任何用户输入的URL列入白名单(例如,确保它们以
http://
https://
开头),但是,由于CSP是一种深度防御措施,您可能不想过多地削弱它


这样做的结果是,为了防止触发CSP报告或错误,您削弱了CSP。Google Analytics与CSP兼容。uBlock Origin扩展正在注入base64编码的
数据:
blob OP。要验证,请禁用它/尝试匿名。IIRC,这是由于扩展中的“实验性/不间断”设置


请抵制将
脚本src中的
数据:
列入白名单的诱惑。这将使该策略对XSS缓解完全无用,因为攻击者只需注入
即可执行Javascript。

这可能与此类似:?@Eike我认为没有多大帮助对不起,我悬赏了这个问题,希望得到答案。它记录请求的标题,但不记录URI。你能把这个记录下来吗?通过查看网络选项卡,您是否尝试过这样做:
scriptsrc'self'www.google-analytics.com?这是csp的一个例子。。。这使得该策略对于XSS缓解完全没有用处,因为攻击者只需注入:
即可执行Javascript。CSP的缺陷就在于此。集成后期开发太难了,问题是您的第三方加载项也是这样设计的,这意味着它们的实现会稀释您的CSP.Ps。为什么要投否决票?我已经提到它削弱了政策。这是分析工作与否的区别。谢谢。也许你应该加上这个作为答案,然后我会删除我的?@rawpower:谢谢你提醒我在他们回答后再回到这篇文章。我的答案更新了。