没有不安全内联的内容安全政策和Google Analytics?

Buz*_*zut 2 google-analytics content-security-policy

目前,我在Apache中的CSP配置看起来像这样:

Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' https:"
Run Code Online (Sandbox Code Playgroud)

我想删除该unsafe-inline指令以提高我网站的安全性,请参阅Mozilla的Observatory.

然而,每当我删除它时,我的浏览器控制台都会显示一个错误,指示内联GA无法加载...

有解决方法吗?

Hol*_*ill 6

抱歉再次编辑.建议的解决方案

新的Google Analytics代码到外部文件中

不适合我.相反,我让它像这样工作:

我在我的页面添加一个脚本标记来加载analytics.js:

<script src="https://ssl.google-analytics.com/analytics.js" async id="ga"></script>
<script src="my_other.js" async></script>
Run Code Online (Sandbox Code Playgroud)

然后在my_other.js文件中我这样做:

window.addEventListener("load", function(){
   ga('create', 'UA-********-1', 'auto');
   ga('send', 'pageview');
})
Run Code Online (Sandbox Code Playgroud)

然后在你的csp头文件中你必须为script-src和image-src设置一些exeption.沿着这些方向做的事情:

img-src data: 'self' *.google-analytics.com *.g.doubleclick.net;
script-src 'self' *.google-analytics.com
Run Code Online (Sandbox Code Playgroud)