Почему Google +1 записывает мои движения мыши?

Это только на страницах с полем Google +1 на моем веб-сайте:

enter image description here

Кажется, что вы вызываете события при каждом движении мыши. Кто-нибудь знает, что он делает? Я искал в Google (возможно, я должен попробовать Bing на этот раз!), Но никто, кажется, не написал об этом. Это запись информации о моих посетителях, просматривающих привычки? Является ли это своего рода CAPTCHA для обнаружения такого человека, как поведение?

Пример URL, нажмите F12 в хроме, перейдите к временной шкале и нажмите запись, затем переместите указатель мыши на эту страницу (это плюс один вопрос, не беспокойтесь):

/info/32589/why-does-google-1-record-my-mouse-movements

Для чего это стоит (я вижу, что это будет популярный вопрос), я не думаю, что за ним что-то зловещее, это может быть даже бесполезным артефактом/ошибкой, но если он что-то делает отслеживания, ну, это кажется мне немного обманчивым.

Политика конфиденциальности Google +1

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

Политика конфиденциальности Google +1

28 июня 2011 г.

Политика конфиденциальности Google описывает, как мы обрабатываем личную информацию когда вы используете продукты и услуги Googles, включая информацию при использовании кнопки Google +1. Кроме того, следующее описывает наши дополнительные методы конфиденциальности, характерные для вашего использования +1.

Информация, которую мы собираем и как она делится

Кнопка Google +1 позволяет публично обмениваться информацией с миром. Кнопка Google +1 помогает вам и другим лицам получать персонализированный контент от Google и наших партнеров. Тот факт, что вы + 1d что-то будет записываться Google, а также информация о странице, которую вы просматривали, когда вы нажали на кнопку +1. Ваши + 1 могут появляться для других в качестве аннотации с именем вашего профиля и фотографии в службах Google (например, в результатах поиска или на вашем Google Profile) или в других местах на веб-сайтах и ​​в Интернете.

Мы будем записывать информацию о вашей активности +1, чтобы обеспечить вы и другие пользователи с лучшим опытом работы с сервисами Google.

Чтобы использовать кнопку Google +1, вам необходимо иметь общедоступный Google Профиль видимый миру, который, как минимум, включает имя, которое вы выбрал для профиля. Это имя будет использоваться в службах Google и в некоторых случаях он может заменить другое имя, которое вы использовали при совместном использовании контента в вашей учетной записи Google. Мы можем отобразить ваш профиль Google личность для людей, у которых есть ваш адрес электронной почты или другая идентификация информация.

Использование собранной информации

В дополнение к вышеописанным видам использования предоставленная вами информация для нас используется в соответствии с нашей основной Политикой конфиденциальности Google.

Мы можем делиться совокупной статистикой, связанной с деятельностью пользователей +1 с помощью общественность, наши пользователи и партнеры, такие как издатели, рекламодатели, или связанных сайтов. Например, мы можем сообщить издателю, что "10% люди, которые + 1d эту страницу находятся в Такоме, Вашингтон."

Ваш выбор

Вы можете просмотреть список предметов, которые у вас есть + 1d, на вкладке +1 на вашем Профиль. Вы можете удалить отдельные элементы из этого списка.

Вы можете отказаться от просмотра рекомендаций +1 на сторонних веб-сайтах (в том числе по объявлениям сторонних сайтов) от людей, которых вы знаете.

Мы будем хранить данные (например, ваши последние + 1) локально в вашем браузере. Вы можете получить доступ и очистить эту информацию в своем браузере. настройки.

Дополнительная информация

Google придерживается принципов конфиденциальности в США. Для большего информацию о структуре Safe Harbor или нашу регистрацию см. веб-сайт Департамента Commerces.

Ответ 1

Кажется, он посеял генератор случайных чисел с движениями мыши.

Обработчик перемещения мыши сам что-то делает в следующих строках:

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.

Все это обернуто в область анонимной функции, которая сама сразу вычисляется для возврата функции, которая присваивается свойству с именем "random". Эта возвращаемая функция выглядит примерно так:

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

hash, BTW, - это переменная, которая начинается как хэш MD5 файлов cookie страницы, местоположения, new Date().getTime() и Math.random().

(Обратите внимание, конечно, что Google может изменить возвращаемый script в любое время и, следовательно, аннулировать этот анализ)

Ответ 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/

Ответ 3

Если вы можете сначала загрузить свой script, вы можете подключить 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));
}

Чтобы узнать, что слушал window.onmousemove, вам нужно будет это сделать потом, потому что это просто назначение переменной, а не функция, которую вы можете перехватить. Поэтому иногда после запуска кода инициализации страницы вы делаете это для регистрации того, что было подключено к нему:

if (window.onmousemove) {
    console.log(window.onmousemove.toString().slice(0,80));
}

Ответ 4

В uncluttered code от 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. Это определенно похоже на алгоритм рандомизации.

Я не уверен, почему страница понадобится что-то вроде этого, возможно, с помощью cookie, предотвращая автоматическое нажатие кнопки +1? Когда вы нажимаете "+1", появляется экран входа в систему, который, как представляется, имеет случайное число, добавленное как хэш, URL заканчивается "& hl = en-US # RANDOMNUMBER"

Ответ 5

Бьюсь об заклад, ваша бета-версия "Аналитика на странице". Создание курсора и щелчок по карте тепла.

Ответ 6

Я думаю, что статья Го и Агиттейна из CHI 2010 http://www.mathcs.emory.edu/~qguo3/wip287-guo11.pdf может дать дополнительные идеи о том, почему Google это делает.

По-видимому, движения мыши являются грубым прокси-движением для движения глаз и позволяют людям приближать результаты отслеживания глаз.

Ответ 7

Они, вероятно, используют его для определения того, как быстро пользователи перемещаются из одного элемента пользовательского интерфейса в другой, как часто пропуская клики и т.д.

Обычно у меня есть глубоко циничный взгляд на инвазивные возможности, но я не думаю, что это риск для конфиденциальности. Это шокирует, потому что это настолько необычно мелкозернистая, но это не очень показательно. Движение мыши кодирует банковские реквизиты? Porn?

Google и т.д. имеют много высококачественных данных, чтобы отслеживать вас. Координаты мыши имеют очень ограниченное применение.

Чтобы немного уйти от темы:

В какой-то мере, чем больше данных вы собираете о людях, тем больше проблем у вас есть. Я слышал (от Шнайера и т.п.), Что спецслужбы страдают от огромного количества ложных срабатываний, вызванных их все ускоряющимися процессами сбора данных - отношение сигнал-шум является ужасным. Я нахожу это несколько забавным.

Ответ 8

Невозможно точно сказать, что Google делает с данными перемещения мыши. Как вы сами видите, он не возвращает нагрузки и нагрузки информации на сервер, поэтому не о чем беспокоиться.

Первым, вероятно, является общий обработчик событий. Причина, почему я думаю, что если вы читаете исходный код, вы можете видеть, что на линии перед тем, как появляется ошибка "Ошибка" ( "Недопустимый аргумент слушателя" ); и следующий или один после следующего там throw Error ( "Недопустимый тип события" ). Поскольку запущенная линия находится между этими двумя (связанными с событиями) исключениями, я уверен, что это какой-то обработчик событий. Используя отладчик, он ничего не делает (не переходит к какой-либо другой функции), поэтому кажется, что он там для будущей реализации.

Вторая функция идентична первой. Поскольку он gTalk, я предполагаю, что он обновит ваш статус (прочь, онлайн и т.д.).

Третий, похоже, является средством обновления контента или чем-то подобным, поскольку вы можете видеть строки, подобные cacheTimeout и т.д., разбросанные вокруг него.

Мои 2 цента.

Ответ 9

это действительно далеко от далекой, но здесь все равно...

он вращается вокруг типа траектории и кривизны mousemovement от начальной точки к различным аттракторам, то есть 2 пункта/ссылки на странице.

http://sciencestage.com/v/26698/dynamics-and-embodiment-in-language-comprehension.html

если вы положите две конкурирующие ссылки/кнопки и проанализируете траекторию по одной из этих ссылок, вы можете вывести шаблон или как, который вы достигли решение нажать только одну из этих ссылок (см. vid около 13:00)