Tom*_*len 197 javascript privacy data-protection mousemove google-plus-one
这仅适用于我网站上包含Google +1信箱的网页:

它似乎是在每次移动鼠标时触发事件.有谁知道它在做什么?我在Google上搜索过(也许我应该在这个上尝试过Bing一次!)但似乎没有人写过这篇文章.它是否记录了我的访客浏览习惯的信息?是否有某种类型的CAPTCHA来检测像人类一样的人类?
示例URL,在chrome中按F12,转到时间轴并按下记录,然后在此页面上移动鼠标(加上这个问题,请不要担心):
对于它的价值(我可以看到这将是一个流行的问题),我不认为它背后有任何险恶的东西,它甚至可能是一个无用的神器/错误,但如果它正在进行某种跟踪,好吧,这似乎有点欺骗我.
Google +1隐私政策
http://www.google.com/intl/en/privacy/plusone/
Google +1按钮隐私权政策
2011年6月28日
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遵守美国安全港隐私权原则.有关安全港框架或我们的注册的更多信息,请访问美国商务部的网站.
Ano*_*mie 123
它似乎是用鼠标移动播种随机数生成器.
鼠标移动处理程序本身可以执行以下操作:
var b = ((event.X << 16) + event.Y) * (new Date().getTime() % 1000000);
c = c * b % d;
if (previousMouseMoveHandler) previousMouseMoveHandler.call(arguments);
Run Code Online (Sandbox Code Playgroud)
dis (screen.width * screen.width + screen.height) * 1000000,c是一个以1开头的变量.
所有这些都包含在匿名函数的范围内,该函数本身会立即被评估以返回分配给名为"random"的属性的函数.返回的函数看起来像这样:
var b = c;
b += parseInt(hash.substr(0,20), 16);
hash = MD5(hash);
return b / (d + Math.pow(16, 20));
Run Code Online (Sandbox Code Playgroud)
hash,BTW,是一个变量,以页面的cookie,位置new Date().getTime(),和的MD5哈希值开头Math.random().
(注意,当然,Google可能会随时更改返回的脚本,从而使此分析无效)
小智 47
正在执行的实际代码来自此处的Shindig代码:
需要一个安全的随机数来确保此处创建的安全postMessage通道不会被页面上的脚本破坏以执行任意操作.
这篇文章解释了为什么使用Math.random()是坏的:
http://baagoe.com/en/RandomMusings/javascript/
jfr*_*d00 32
如果你可以先加载你的脚本,你可以挂钩addEventListener并记录设置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));
}
Run Code Online (Sandbox Code Playgroud)
要查看正在监听window.onmousemove的内容,之后你必须这样做,因为它只是一个变量赋值,而不是你可以拦截的函数.因此,有时在页面的初始化代码运行之后,您可以执行此操作来记录连接到它的内容:
if (window.onmousemove) {
console.log(window.onmousemove.toString().slice(0,80));
}
Run Code Online (Sandbox Code Playgroud)
NoB*_*ugs 17
在截至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))
}
}();
Run Code Online (Sandbox Code Playgroud)
它是使用bitshift将x和y之和乘以2 ^ 16,然后添加一些其他维度并将所有这些乘以时间乘以毫秒mod 1000000.这绝对看起来像一个随机算法.
我不确定为什么页面会需要这样的东西,也许它正在使用cookie,阻止自动+1点击?当您单击"+1"时,弹出的登录屏幕似乎附加了随机数作为哈希,网址以"&hl = en-US#RANDOMNUMBER"结尾