为什么 Google +1 会记录我的鼠标移动?[已关闭]

这仅适用于我的网站上带有Google +1框的网页:

enter image description here

它似乎在每次鼠标移动时触发一个事件。有人知道它在做什么吗?我在谷歌上搜索(也许我应该尝试一次Bing!),但似乎没有人写过它。它是否记录了有关我的访问者浏览习惯的信息?是某种验证码来检测人类,就像behviour一样吗?

示例URL,在chrome中按F12,转到时间轴并按记录,然后在此页面上移动鼠标(加上这个问题,不用担心):

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&parent=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

对于它的价值(我可以看到这将是一个流行的问题),我不认为它背后有什么险恶的东西,它甚至可能是一个无用的工件/错误,但如果它正在做某种跟踪,好吧,这对我来说似乎有点欺骗性。

谷歌+1隐私政策

http://www.google.com/intl/en/privacy/plusone/

谷歌+1按钮隐私政策

六月 28, 2011

Google 隐私权政策描述了当您使用 Google 的产品和服务时,我们如何处理个人信息,包括您在使用 Google +1 按钮时提供的信息。此外,以下还介绍了特定于您使用 +1 按钮的其他隐私惯例。

我们收集的信息及其共享方式

Google +1 按钮是您与世界公开分享信息的一种方式。Google +1 按钮可帮助您和其他人接收来自 Google 和我们的合作伙伴的个性化内容。Google 会记录您 +1 的内容,以及您点击 +1 按钮时正在查看的页面的相关信息。您的 +1 可能会在 Google 服务(例如搜索结果或您的 Google 个人资料)或网站和互联网广告的其他位置显示为带有您的个人资料名称和照片的注释。

我们将记录有关您的 +1 活动的信息,以便为您和其他用户提供更好的 Google 服务体验。

要使用 Google +1 按钮,您需要向全世界公开显示 Google 个人资料,其中至少包括您为个人资料选择的名称。该名称将在 Google 服务中使用,在某些情况下,它可能会替换您在 Google 帐号下共享内容时使用的其他名称。我们可能会向拥有您的电子邮件地址或其他识别信息的用户显示您的 Google 个人资料身份。

使用收集到的信息

除上述用途外,您提供给我们的信息的使用还受我们主要的Google隐私政策的约束。

我们可能会与公众、我们的用户和合作伙伴(如发布商、广告商或关联网站)共享与用户 +1 活动相关的汇总统计信息。例如,我们可能会告诉发布商“此页面+1的用户中有10%位于华盛顿州塔科马。

您的选择

您可以在个人资料的+1标签上查看您拥有的+1的项目列表。您可以从该列表中删除单个项目。

您可以选择不在第三方网站上看到您认识的人的 +1 推荐(包括第三方网站上的广告)。

我们将在您的浏览器中本地存储数据(例如您最近的 +1)。您可以在浏览器设置中访问和清除此信息。

更多信息

Google 遵守美国安全港隐私原则。有关安全港框架或我们的注册的更多信息,请参阅商务部网站。


答案 1

它似乎在用鼠标移动播种随机数生成器。

鼠标移动处理程序本身执行如下操作:

var b = ((event.X << 16) + event.Y) * (new Date().getTime() % 1000000);
c = c * b % d;
if (previousMouseMoveHandler) previousMouseMoveHandler.call(arguments);

d是 ,并且是一个以 1 开头的变量。(screen.width * screen.width + screen.height) * 1000000c

所有这些都被包装在一个匿名函数的作用域中,该函数本身被立即计算以返回分配给名为“random”的属性的函数。返回的函数如下所示:

var b = c;
b += parseInt(hash.substr(0,20), 16);
hash = MD5(hash);
return b / (d + Math.pow(16, 20));

hash,BTW 是一个变量,它以页面 Cookie、位置、和 的 MD5 哈希值开头。new Date().getTime()Math.random()

(当然,请注意,Google可能随时更改返回的脚本,从而使此分析无效)


答案 2

正在执行的实际代码派生自此处的 Shindig 代码:

http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/shindig.random/random.js

需要一个安全的随机数来确保此处创建的安全 postMessage 通道不会受到页面上的脚本的影响,以执行任意操作。

这里有一篇文章解释了为什么使用Math.random()是不好的:

http://baagoe.com/en/RandomMusings/javascript/