为什么Google +1会logging我的鼠标移动?
这只适用于我的网站上带有Google +1框的网页:
似乎是在每一只老鼠的移动中发射一个事件。 任何人都知道它在做什么? 我在Google上search(也许我应该尝试Bing在这一次!),但似乎没有人写了关于它。 它是否logging有关我的访客浏览习惯的信息? 是否有某种types的validation码可以检测到像behviour这样的人?
例如URL,在chrome中按F12,进入时间轴并按下logging,然后在这个页面上移动鼠标(加上这个问题,不用担心):
https://plusone.google.com/u/0/_/+1/button?hl=en-US&jsh=r%3Bgc%2F22224365-adc8a19e#url=https://stackoverflow.com/questions/6667544/google -1录音的鼠标移动和大小=身高&计数=真&ID = I1_1310488711647与父= HTTPS://plusone.google.com/u/0/_/+1/button HL = EN-US&JSH = R%3Bgc%2F22224365-adc8a19e# URL = HTTPS://stackoverflow.com/questions/6667544/google-1-recording-mouse-move&size=tall&count=true&id=I1_1310488711647
对于它的价值(我可以看到这将是一个受欢迎的问题),我不认为它背后有什么邪恶的东西,它甚至可能是一个无用的神器/ bug,但是如果它正在做某种跟踪,好吧,这似乎有点欺骗我。
Google +1隐私权政策
http://www.google.com/intl/en/privacy/plusone/
Google +1button隐私权政策
2011年6月28日
Google隐私权政策介绍了我们在使用Google产品和服务时如何处理个人信息,包括您在使用Google +1button时提供的信息。 另外,下面介绍我们针对您使用+1button的其他隐私惯例。
我们收集的信息以及如何共享
Google +1button是您与世界公开分享信息的一种方式。 Google +1button可帮助您和其他人从Google和我们的合作伙伴处接收个性化内容。 Google +会logging您+1的事实,以及您点击+1button时正在查看的信息。 您的+1可能会在其他人身上显示为您的个人资料名称和Google服务中的照片(例如search结果或Google个人资料)中的照片,或其他网站上的其他网站和广告。
我们会logging您的+1活动信息,以便为您和其他用户提供更好的Google服务体验。
为了使用Google +1button,您需要有一个公开的Google个人资料,这个个人资料至less包含您为个人资料select的名称。 该名称将在Google服务中使用,在某些情况下,它可能会replace您在Google帐户下共享内容时使用的其他名称。 我们可能会将您的Google个人资料身份显示给拥有您的电子邮件地址或其他身份信息的人。
使用收集的信息
除上述用途外,您提供给我们的信息也将受到我们的Google隐私政策主体的约束。
我们可能会与公众,我们的用户以及合作伙伴(例如发布商,广告客户或关联网站)共享与用户+1活动相关的汇总统计信息。 例如,我们可能会告诉一位发布商,“这个页面上有一个+1的人在华盛顿州的塔科马。”
你的select
您可以在个人资料上的+1标签上查看您+1项目的列表。 您可以从该列表中删除单个项目。
您可以select停止向您认识的人员查看第三方网站上的+1build议(包括第三方网站上的广告)。
我们将在您的浏览器中本地存储数据(例如您最近的+1)。 您可以在浏览器设置中访问并清除这些信息。
更多信息
Google坚持美国安全港隐私原则。 有关安全港框架或我们注册的更多信息,请参阅商务部网站。
它似乎是随着你的鼠标移动播种随机数字发生器。
鼠标移动处理程序本身做了以下几行:
var b = ((event.X << 16) + event.Y) * (new Date().getTime() % 1000000); c = c * b % d; if (previousMouseMoveHandler) previousMouseMoveHandler.call(arguments);
d
是(screen.width * screen.width + screen.height) * 1000000
, c
是一个从1开始的variables。
所有这些都被包装在一个匿名函数的范围内,这个匿名函数本身被立即评估为返回一个被赋值给一个名为“random”的属性的函数。 返回的函数看起来像这样:
var b = c; b += parseInt(hash.substr(0,20), 16); hash = MD5(hash); return b / (d + Math.pow(16, 20));
hash
,顺便说一句,是一个variables,开始作为该页面的cookie,位置, new Date().getTime()
和Math.random()
的MD5散列。
(当然,请注意,Google可能会随时更改所返回的脚本,从而使此分析无效)
正在执行的实际代码是从这里find的Shindig代码派生的:
repos/asf/shindig/trunk/features/src/main/javascript/features/shindig.random/random.js
需要一个安全的随机数来确保这里创build的安全的postMessage通道不能被页面上的脚本破坏,以执行任意的操作。
这里有一篇文章解释了为什么使用Math.random()很糟糕:
如果您可以首先加载脚本,则可以挂接addEventListener并logging正在设置addEventListener的所有人,并查看是谁在执行此操作,然后查看相关代码,查看他们正在执行的操作。
在Google代码加载之前将其置于适当位置:
var oldListener = document.addEventListener; document.addEventListener = function(type, listener, capture) { if (type == "mousedown" || type == "mouseup" || type == "mousemove") { console.log("type=" + type + " listener=" + listener.toString().slice(0, 80)); } return (oldListener.apply(this, arguments)); }
要查看正在监听window.onmousemove的内容,之后必须执行此操作,因为这只是一个variables赋值,而不是您可以拦截的函数。 所以有时在页面的初始化代码运行之后,你可以这样做来logging所连接的东西:
if (window.onmousemove) { console.log(window.onmousemove.toString().slice(0,80)); }
在截至7月22日的整洁代码中,您会注意到onmousemove是Gb.random类的一部分:
Gb.random = function () { function a(a) { var b = Jb(); b.update(a); return b.ib() } var b = la.random(), c = 1, d = (screen[za] * screen[za] + screen[J]) * 1E6, e = i.onmousemove || Db(); i.onmousemove = function (a) { if (i.event) a = i.event; var b = a.screenX + a.clientX << 16; b += a.screenY + a.clientY; b *= (new Date)[Ta]() % 1E6; c = c * b % d; return e[G](i, ka[x][Aa][G](arguments)) }; var f = a(k.cookie + "|" + k[B] + "|" + (new Date)[Ta]() + "|" + b); return function () { var b = c; b += ia(f[cb](0, 20), 16); f = a(f); return b / (d + la.pow(16, 20)) } }();
它将x和y的和乘以2 ^ 16,然后加上一些其他的维数,并以毫秒为单位乘以1000000.这绝对看起来像一个随机algorithm。
我不知道为什么页面需要这样的东西,也许它使用cookie,阻止自动+1点击? 当你点击“+1”时,popup的login屏幕似乎有一个附加的随机数作为哈希,url以“&hl = en-US#RANDOMNUMBER”结尾
我敢打赌你的“网页分析”testing版。 制作一个光标并点击热图。
我认为,2010年中国气候变化信息中心(CNI) http://www.mathcs.emory.edu/~qguo3/wip287-guo11.pdf的Guo和Agichtein撰写的这篇论文可以提供Google为什么这样做的更多想法。;
显然,鼠标移动是眼球运动的粗略代表,并且允许人们近似眼睛跟踪结果。
他们可能用它来衡量用户从一个UI项目移动到另一个项目的速度有多快,点击错过的频率等等。
我通常对侵入性特征持有愤世嫉俗的观点,但我不认为这是隐私风险。 这是令人震惊的,因为它非常细腻,但不是很明显 。 你的鼠标移动是否编码银行的细节? A片?
谷歌等有大量高质量的数据来跟踪你。 鼠标坐标具有非常有限的应用。
有点偏离主题:
在某种程度上,你收集的关于人的数据越多,你遇到的问题就越多。 我听到(来自Schneier之类的)情报机构正在遭受由于其不断加速的数据采集引发的大量误报 – 信噪比糟糕透顶。 我觉得这有点有趣。
谷歌用这个鼠标移动数据做些什么是不可能的。 正如你所看到的那样,它不会将加载和加载的信息返回给服务器,因此,没有什么可担心的。
第一个可能是一个通用的事件处理程序。 我之所以这么认为,是因为如果你阅读了源代码,你可以看到之前有一行throw Error(“Invalid listener argument”); 并在下一个或下一个有抛出错误(“无效的事件types”)。 由于被触发的线路处于这两个(事件相关的)exception之间,所以我很确定它是某种事件处理程序。 使用debugging器,它并没有做任何事情(不会跳转到其他function),所以它似乎在未来的实施。
第二个function与第一个function相同。 因为它是gTalk的,我想它会更新你的状态(离线,在线等)。
第三个似乎是内容更新或类似的东西,因为你可以看到像分散在其周围的stringcacheTimeout等。
我的2美分。
这真的是远远超出了,但在这里它无论如何… …
它围绕鼠标移动的轨迹和曲率types,从一个起始点到不同的吸引子,即一个页面上的2个项目/链接。
http://sciencestage.com/v/26698/dynamics-and-embodiment-in-language-comprehension.html
简而言之,如果你把两个相互竞争的链接/button分析到其中一个链接的轨迹,你可以推断出一个模式,或者你如何 做出决定 ,只点击其中的一个链接(参见13:00左右的video)