我在网站的某些页面上使用Google Analytics。我的整个网站都使用SSL。是否可以保护Goole Analytics __umt*
的Cookie。
至少我想在它们上启用安全标志。充其量我也想在它们上设置HTTP唯一标志,但我不认为后者是可能的(因为Google使用JS来使用我认为的cookie)。
有可能这样做吗?如果是这样,如何设置?
答案 0 :(得分:15)
如果不修改GA脚本并存储您自己的本地副本,不会,您将无法设置安全或HttpOnly标志。我想谷歌已经做出了有意识的设计决定,并确保能够通过安全和不安全的方案跟踪同一个用户。
你必须问自己,你想要实现的目标是什么;如果由于缺乏安全标志,中间人可以拦截,阅读或操纵cookie,那么潜在的利用是什么?与HttpOnly标志相同;如果攻击者可以通过XSS攻击检索此cookie,那么它的优势是什么?
我之前看到过这种来自自动安全扫描程序的反馈,只是由缺少的标志触发,而没有实际使用cookie的上下文。这将是我第一次猜到为什么这样的问题会出现。
答案 1 :(得分:3)
加载GA库时,有一个名为cookie_flags
的新选项。
ga('create', 'UA-XXXXX-Y', {
cookieFlags: 'max-age=7200;secure;samesite=none'
});
答案 2 :(得分:0)
除了 raik 的回答:
有关在分析中设置更多 cookie 值的更多信息可以在此 blog post
中找到例如如何使用 gtag:
gtag('config', 'G-N2A3NNNNN', {
cookie_flags: 'max-age=7200;secure;samesite=none'
});
答案 3 :(得分:-2)
Google Analytics Cookie(是的,通过Js设置)是主要Cookie,因此,只有您的域可以编写这些Cookie。因此,如果您正在寻找安全性,那就是它的安全性。
虽然,我不是100%肯定您的问题,但如果您只想在HTTP页面上启用Google Analytics,您可以通过这种方式更改网页上的GA代码,例如:
<script type="text/javascript">
if(document.location.protocol != 'https:'){
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
}
</script>