Javascript 谷歌分析如何避免欺骗?
所以我一直在想谷歌分析如何避免欺骗。当然,当你注册一个帐户时,他们会让你通过上传一个文件来验证你拥有这个域。但也会给您一些带有唯一公共代码的脚本标记(替换为下面的“XXXXXXX”)。是什么阻止了有人复制这些代码,欺骗请求头,并通过使用curl执行谷歌的身份验证策略来假装是我的站点Javascript 谷歌分析如何避免欺骗?,javascript,security,api,node.js,Javascript,Security,Api,Node.js,所以我一直在想谷歌分析如何避免欺骗。当然,当你注册一个帐户时,他们会让你通过上传一个文件来验证你拥有这个域。但也会给您一些带有唯一公共代码的脚本标记(替换为下面的“XXXXXXX”)。是什么阻止了有人复制这些代码,欺骗请求头,并通过使用curl执行谷歌的身份验证策略来假装是我的站点 <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'XXXXXXX']); _
<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>
var _gaq=_gaq | |[];
_gaq.push([''u setAccount',XXXXXXX']);
_gaq.push([''u trackPageview']);
(功能(){
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);
})();
我问这个问题的原因是因为我正试图创建一个类似的JavaScript插件,将我的网站数据公开给参与网站(“客户端”)。我不确定在客户端服务器端没有私钥的情况下如何获得此功能。这有点糟糕,因为我真的想要“像谷歌分析一样容易集成”。有什么想法吗?有趣的问题
正如评论所暗示的,谷歌并没有真正解决这个问题。事实上,在登台站点/dev框中使用条件代码/预处理功能来禁用GA是很常见的,因为如果不这样做,它会把你的数字搞砸
您可以在分析服务器、客户服务器和客户机上尝试一种三条腿的方法。它可以像这样工作:
- 客户服务器和您的分析服务器共享一个密钥。当客户访问客户的站点时,客户的服务器会告诉您的分析服务器它希望开始跟踪该特定客户
- 您的分析服务器为该用户生成会话id,并将动态URL返回到客户的服务器。URL指向注入会话ID的JavaScript跟踪代码(或其加载程序)
- 客户的服务器将页面发送到客户机。该页面包含具有唯一会话ID的客户端跟踪代码。操作将被跟踪并发送到分析服务器
- 在分析服务器上,您可以从客户机接收跟踪信息。检查会话ID是否有效且未过期,以及IP地址是否匹配
祝你好运 听起来这个问题真的与谷歌分析无关(我真的建议你把它从你的问题中删除,因为我认为这会误导大多数人,不会让你更接近你的答案) 您有一些数据,只想与选定的站点共享。除了使用某种授权方案保护数据,然后为所选站点提供某种密码或密钥,使其能够访问数据,而其他未提供密钥的站点将无法访问数据之外,没有其他方法可以做到这一点。即使是这种方案也只能在访问数据的代码位于服务器的私有区域(可以保护密钥/密码)而不是浏览器中的javascript的情况下工作
至于GA欺骗(我不认为这与你真正的问题有任何关系),我怀疑谷歌对此并不太担心,因为除了一般对GA的拒绝服务攻击(我怀疑他们确实有防范措施)之外,为其他人的网站记录点击有什么好处?无论是谁,都无法访问数据,因为数据位于其他人的GA帐户中。我想如果有人试图把他们的GA数字搞砸,可能会让人感到恼火,但没有更有利的动机,可能没有很多人这么做。@freejosh我认为谷歌解决了这个问题,不是因为我的网站很重要,而是因为所有使用其分析软件的网站的完整性都很重要。然而,这个问题与谷歌关系不大,而与这一特定战略的安全性关系更大。在这种情况下,你如何防止欺骗?@RepWhoringPeeHaa我不完全确定你的意思,但这与谷歌无关。这是关于如何确保一个网站是一个真正的网站,而不是一个抓取公共标识符并更改请求头的欺骗者?@jmort253,SSL与任何事情都有什么关系?API令牌是公共的,我同意OP的观点,即如何防止欺骗是一个奇怪的难题。@KirkWoll-如果它是公共的,那么如何防止它通过客户端和服务器之间的端口80侦听器被读取?如果你在桥上向巨魔大声喊出密码,让其他人听到,那么他们也可以使用同样的,现在不安全的密码过桥。我的观点是,如果你想对任何东西进行身份验证,你必须安全地进行。此外,谷歌分析不会阻止其他数据被记录。试试看,只要把你的JS代码放在一个你站在某处的小网站上就行了。您将看到数据。防止数据写入GA的唯一方法是使用过滤器将其过滤掉。在op的案例中,他没有接收数据,而是共享数据,这与谷歌分析的做法正好相反,这意味着他可能正在尝试