保护Google跟踪Cookie

时间:2012-02-01 10:09:10

标签: security cookies google-analytics

我在网站的某些页面上使用Google Analytics。我的整个网站都使用SSL。是否可以保护Goole Analytics __umt*的Cookie。

至少我想在它们上启用安全标志。充其量我也想在它们上设置HTTP唯一标志,但我不认为后者是可能的(因为Google使用JS来使用我认为的cookie)。

有可能这样做吗?如果是这样,如何设置?

4 个答案:

答案 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>