12

所以我一直在试图弄清楚谷歌分析如何避免欺骗。当然,当您注册一个帐户时,它们会让您通过上传文件来验证您是否拥有该域。但是你也会得到一些带有唯一公共代码的脚本标签(在下面替换为'XXXXXXX')。是什么阻止了某人复制该代码、欺骗请求标头并通过使用 curl 遵循 Google 的身份验证策略来伪装成我的网站?

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'XXXXXXX']);
  _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>

我问的原因是因为我正在尝试创建一个类似的 JavaScript 插件,将我的网站数据公开给参与的网站(“客户端”)。我不确定如何在客户端服务器端没有私钥的情况下获得此功能。这很糟糕,因为我真的想要整个“像谷歌分析一样容易集成”。有什么想法吗?

4

2 回答 2

5

听起来这个问题与谷歌分析真的无关(我真的建议你从你的问题中删除它,因为我认为它会误导大多数人并且不会让你更接近你的答案)。

您有一些数据,并且只想与选定的站点共享。除了使用某种授权方案保护数据,然后为选定的站点提供某种密码或密钥,让他们可以访问它,而您没有提供密钥的其他人将无法获得之外,没有其他方法可以做到这一点访问数据。即使这种方案也只有在访问数据的代码位于服务器上的私有区域(可以保护密钥/密码)而不是浏览器中的 javascript 时才有效。

至于 GA 欺骗(我认为这与您的真正问题没有任何关系),我怀疑 Google 并不太担心,因为除了对 GA 的一般拒绝服务攻击(我怀疑他们确实有保护),为别人的网站记录点击有什么好处?执行此操作的人无法访问数据,因为数据在其他人的 GA 帐户中。我想有人可能会因为试图搞砸他们的 GA 数字而感到烦恼,但如果没有一些更有利可图的动机,可能不会有很多人试图这样做。

于 2012-05-20T02:36:11.393 回答
3

有趣的问题。

正如评论所暗示的那样,谷歌并没有真正解决这个问题。事实上,在你的登台站点/开发盒上使用条件代码/预处理来禁用 GA 是很常见的,因为如果你不这样做,它会搞砸你的数字。

您可以尝试使用分析服务器、客户服务器和客户端的一种三足方法。它可以像这样工作:

  • 客户的服务器和您的分析服务器共享一个密钥。当客户访问客户的站点时,客户的服务器会告诉您的分析服务器它想要开始跟踪这个特定的客户。

  • 您的分析服务器会为该用户生成一个会话 ID,并向客户的服务器返回一个动态 URL。该 URL 指向您的 JavaScript 跟踪代码(或它的加载器),并注入了会话 ID。

  • 客户的服务器将页面发送给客户端。该页面包含具有唯一会话 ID 的客户端跟踪代码。跟踪操作并将其发送到您的分析服务器。

  • 在您的分析服务器上,您会收到来自客户端机器的跟踪信息。您检查会话 ID 是否有效且未过期,以及 IP 地址是否匹配。

这应该提供额外的安全级别。不幸的是,它不会“像谷歌分析那样容易集成......”它会涉及您的客户的服务器端参与。它对于跟踪未经客户身份验证的用户也没有多大用处,因为第三方可以简单地访问您客户的站点以获取有效的会话 ID,然后将一些虚假信息发送到您的分析服务器。但是,对于通过您的客户站点进行身份验证的客户,它可能很有用。

祝你好运!

于 2012-05-20T02:15:55.417 回答