Warum zeichnet Google +1 meine Mausbewegungen auf? [geschlossen]

196

Dies gilt nur für Seiten mit einem Google + 1-Feld auf meiner Website:

Geben Sie hier die Bildbeschreibung ein

Es scheint bei jeder Mausbewegung ein Ereignis auszulösen. Weiß jemand was es tut? Ich habe bei Google gesucht (vielleicht sollte ich Bing einmal ausprobieren!), Aber niemand scheint darüber geschrieben zu haben. Zeichnet es Informationen über die Surfgewohnheiten meiner Besucher auf? Ist es eine Art CAPTCHA, menschliches Verhalten zu erkennen?

Beispiel-URL, drücken Sie F12 in Chrome, gehen Sie zur Zeitleiste und drücken Sie Aufnahme, und bewegen Sie dann die Maus über diese Seite (plus diese Frage, keine Sorge):

https://plusone.google.com/u/0/_/+1/button?hl=de-US&jsh=r%3Bgc%2F22224365-adc8a19e#url=/programming/6667544/google -1-Aufnahme-Mausbewegung & Größe = groß & Anzahl = wahr & id = I1_1310488711647 & Eltern = https: //plusone.google.com/u/0/_/+1/button? Hl = de-US & jsh = r% 3Bgc% 2F22224365-adc8a19e # url = https: //stackoverflow.com/questions/6667544/google-1-recording-mouse-move&size=tall&count=true&id=I1_1310488711647

Für das, was es wert ist (ich kann sehen, dass dies eine beliebte Frage sein wird), denke ich nicht, dass etwas Unheimliches dahinter steckt, es könnte sogar ein nutzloses Artefakt / Fehler sein, aber wenn es eine Art Tracking macht, Nun, es scheint mir ein wenig zu täuschen.

Google + 1-Datenschutzrichtlinie

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

Google +1 Button Datenschutzrichtlinie

28. Juni 2011

In den Google-Datenschutzbestimmungen wird beschrieben, wie wir mit personenbezogenen Daten umgehen, wenn Sie die Produkte und Dienste von Google nutzen, einschließlich der Informationen, die Sie bei Verwendung der Google + 1-Schaltfläche erhalten. Darüber hinaus werden im Folgenden unsere zusätzlichen Datenschutzpraktiken beschrieben, die für Ihre Verwendung der Schaltfläche +1 spezifisch sind.

Informationen, die wir sammeln und wie sie weitergegeben werden

Mit der Google + 1-Schaltfläche können Sie Informationen öffentlich mit der Welt teilen. Mit der Google + 1-Schaltfläche erhalten Sie und andere personalisierte Inhalte von Google und unseren Partnern. Die Tatsache, dass Sie etwas +1 getan haben, wird von Google zusammen mit Informationen zu der Seite aufgezeichnet, die Sie beim Klicken auf die Schaltfläche +1 angezeigt haben. Ihre +1 werden anderen möglicherweise als Anmerkung mit Ihrem Profilnamen und Foto in Google-Diensten (z. B. in Suchergebnissen oder in Ihrem Google-Profil) oder an anderer Stelle auf Websites und Anzeigen im Internet angezeigt.

Wir zeichnen Informationen über Ihre + 1-Aktivität auf, um Ihnen und anderen Nutzern eine bessere Erfahrung mit Google-Diensten zu bieten.

Um die Google + 1-Schaltfläche verwenden zu können, muss ein öffentliches Google-Profil für die Welt sichtbar sein, das mindestens den Namen enthält, den Sie für das Profil ausgewählt haben. Dieser Name wird in allen Google-Diensten verwendet und ersetzt in einigen Fällen möglicherweise einen anderen Namen, den Sie beim Teilen von Inhalten unter Ihrem Google-Konto verwendet haben. Wir können Ihre Google-Profilidentität Personen anzeigen, die Ihre E-Mail-Adresse oder andere identifizierende Informationen haben.

Verwendung der gesammelten Informationen

Zusätzlich zu den oben beschriebenen Verwendungen werden die Informationen, die Sie uns zur Verfügung stellen, gemäß unseren wichtigsten Google-Datenschutzbestimmungen verwendet.

Wir können aggregierte Statistiken in Bezug auf die + 1-Aktivität der Benutzer mit der Öffentlichkeit, unseren Benutzern und Partnern wie Publishern, Werbetreibenden oder verbundenen Websites teilen. Zum Beispiel können wir einem Verlag mitteilen, dass „10% der Personen, die diese Seite + 1 erstellt haben, in Tacoma, Washington, sind“.

Deine Entscheidungen

Sie können die Liste der Elemente, die Sie mit +1 versehen haben, auf der Registerkarte +1 in Ihrem Profil anzeigen. Sie können einzelne Elemente aus dieser Liste entfernen.

Sie können es ablehnen, +1 Empfehlungen auf Websites von Drittanbietern (einschließlich Anzeigen auf Websites von Drittanbietern) von Personen zu sehen, die Sie kennen.

Wir speichern Daten (wie Ihre letzten +1) lokal in Ihrem Browser. Möglicherweise können Sie in Ihren Browsereinstellungen auf diese Informationen zugreifen und sie löschen.

Mehr Informationen

Google hält sich an die US-amerikanischen Safe Harbor-Datenschutzgrundsätze. Weitere Informationen zum Safe Harbor-Framework oder zu unserer Registrierung finden Sie auf der Website des Handelsministeriums.

Tom Gullen
quelle
3
Human like behavior? Das ist ein interessanter Gedanke. Ich habe einmal einen ähnlichen Maus-Tracking-Code gesehen, der einfach X / Y-Koordinaten in globalen Variablen aufzeichnete. Sie wurden später verwendet, um das benutzerdefinierte Scrollen in einem jQuery-Plugin zu starten / zu stoppen / abzubrechen. Es gab eine bessere Implementierung als dieses globale Tracking-Ding (das ich schließlich geändert habe).
Mrchief
7
@Mrchief, einige Poker-Kunden verwenden Mausbewegungen, um automatisierte Spieler zu erkennen. Ich dachte, Google könnte dies als wirksame Verteidigung gegen Bots betrachten, die Profile erstellen und + 1 viele Websites erstellen, diese jedoch gegenüber ihren Websites gewichten, was ihnen einen unfairen Wettbewerbsvorteil verschafft. Wer weiß.
Tom Gullen
1
Ich frage
7
Es könnte für eine Art UI-Test sein. Ich weiß, dass Google gerne viele A / B-Tests durchführt, daher die 41 Blautöne vor einiger Zeit. Vielleicht versuchen sie zu verfolgen, wie sich der Benutzer durch die Seite bewegt, um eine bessere Benutzeroberfläche bereitzustellen.
Greg Guida
Welches Tool verwenden Sie?
Sid

Antworten:

123

Es scheint, als würde ein Zufallszahlengenerator mit Ihren Mausbewegungen erzeugt.

Der Mausbewegungshandler selbst führt folgende Aktionen aus:

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

dist (screen.width * screen.width + screen.height) * 1000000und cist eine Variable, die mit 1 beginnt.

All dies wird in den Bereich einer anonymen Funktion eingeschlossen, die selbst sofort ausgewertet wird, um eine Funktion zurückzugeben, die einer Eigenschaft mit dem Namen "random" zugewiesen ist. Diese zurückgegebene Funktion sieht ungefähr so ​​aus:

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

hashÜbrigens ist eine Variable, die als MD5-Hash der Cookies, des Speicherorts, des new Date().getTime()und der Seite beginnt Math.random().

(Beachten Sie natürlich, dass Google das zurückgegebene Skript jederzeit ändern und diese Analyse daher ungültig machen kann.)

Anomie
quelle
4
Tolle Antwort, danke, eine Idee, warum es eine Zufallszahl braucht? Ich verstehe, dass Mausbewegungen eine ziemlich gute Möglichkeit sind, eine Zufallszahl zu generieren, aber würde dies nicht mit mobilen Geräten scheitern (sie haben keine Maus)
Tom Gullen
27
Wird nicht Math.random()aus dem aktuellen Zeitstempel ausgesät? Wenn ja, würden Sie mit einer weit verbreiteten Schaltfläche wie dieser viele Kollisionen erwarten. Könnte die zusätzlichen Anstrengungen erklären.
Yahel
7
@yahelc: Das kann helfen . Kurz gesagt, im Jahr 2008 haben die meisten Browser die Zeit nur einmal gesetzt, entweder beim Prozessstart oder beim ersten Aufruf von Math.random () (im Prozess oder im Fenster / Tab). Natürlich haben sich die Dinge seitdem geändert.
Anomie
3
Dies scheint jedoch seltsam - wenn dies der Zweck wäre, würden sie nicht einfach window.crypto.getRandomValues ​​verwenden: (function () {var buf = new Uint8Array (1); window.crypto.getRandomValues ​​(buf); alert (buf [ 0])}) ()
Rich Bradshaw
3
Angenommen, es wäre ein besserer Zufallsgenerator-Startwert, ein von Google bereitgestellter Startwert würde ausreichen, nicht wahr? Oder mindestens ein oder zwei Mausbewegungen. Der derzeitige Weg scheint in der Tat ein bisschen verdächtig. Es wäre schön, wenn Google hier etwas Transparenz zeigen würde, wo andere es nicht gegeben haben.
Wernight
47

Der tatsächlich ausgeführte Code wird aus dem hier gefundenen Shindig-Code abgeleitet:

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

Eine sichere Zufallszahl ist erforderlich, um sicherzustellen, dass der hier erstellte sichere postMessage-Kanal nicht durch Skripte auf der Seite gefährdet werden kann, um beliebige Aktionen auszuführen.

In diesem Artikel wird erklärt, warum die Verwendung von Math.random () schlecht ist:

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

Paul Lindner
quelle
32

Wenn Sie Ihr Skript zuerst laden können, können Sie addEventListener einbinden und alle protokollieren, die addEventListener festlegen, und sehen, wer es tut. Anschließend können Sie anhand des entsprechenden Codes sehen, was sie tun.

Setzen Sie dies ein, bevor der Google-Code geladen wird:

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));
}

Um zu sehen, was window.onmousemove hörte, müssten Sie es anschließend tun, da es sich nur um eine Variablenzuweisung handelt, nicht um eine Funktion, die Sie abfangen können. Manchmal, nachdem der Initialisierungscode der Seite ausgeführt wurde, haben Sie dies getan, um zu protokollieren, was daran angeschlossen war:

if (window.onmousemove) {
    console.log(window.onmousemove.toString().slice(0,80));
}
jfriend00
quelle
2
Gute Idee, aber das funktioniert nicht, wenn das Skript window.onmousemovestattdessen den alten Stil festlegt (wie es das Google-Skript tut).
Anomie
Wenn dies der Fall war, kann on dies auf die gleiche Weise einhaken.
jfriend00
@ Ben Alpert - Ich habe meiner obigen Antwort einen Code für window.onmousemove hinzugefügt.
jfriend00
Der Funktionscode selbst kann beliebig lang sein. Wir möchten nicht mehrere KB in die Konsole einspeisen, deshalb habe ich nur ein kürzeres Limit ausgewählt, das das Protokollfenster nicht überfordert. Wenn der Code nicht ausreicht, um zu erkennen, wo er sich befindet, kann die Anzahl erhöht werden. Es ist jedoch möglicherweise nicht praktisch, Dinge im Protokollfenster anzuzeigen, wenn keine Obergrenze für die Länge vorhanden ist.
jfriend00
17

Im übersichtlichen Code vom 22. Juli werden Sie feststellen, dass der Onmousemove Teil der Gb.random-Klasse ist:

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))
    }
}();

Es multipliziert die Summe von x und y mit 2 ^ 16 mit Bitverschiebung, fügt dann einige andere Dimensionen hinzu und multipliziert dies alles mit der Zeit in Millisekunden mod 1000000. Dies sieht definitiv wie ein Randomisierungsalgorithmus aus.

Ich bin mir nicht sicher, warum die Seite so etwas benötigt. Vielleicht wird ein Cookie verwendet, um ein automatisiertes Klicken auf +1 zu verhindern. Wenn Sie auf "+1" klicken, wird auf dem angezeigten Anmeldebildschirm eine Zufallszahl als Hash angehängt. Die URL endet mit "& hl = de-US # RANDOMNUMBER".

NoBugs
quelle
4

Ich wette, es ist die Beta-Version von "In-Page Analytics". Erstellen Sie einen Cursor und klicken Sie auf Heatmap.

Fresheyeball
quelle
Es gibt auch einige gute Projekte, die genau das gleiche tun wie diese node.js App , zum Beispiel
Pier Paolo Ramon
+1 (sic). Es ist gut zu wissen, wo die Leute klicken, um zu wissen, was nützlich ist und welcher Ort für Werbung am besten geeignet ist.
rds
Schöne Idee, aber nichts mit dem Thema zu tun;)
Naugtur
2

Ich denke, dass das Papier von Guo und Agichtein von CHI 2010 http://www.mathcs.emory.edu/~qguo3/wip287-guo11.pdf weitere Ideen liefern kann, warum Google das tut.

Anscheinend sind Mausbewegungen ein grober Indikator für Augenbewegungen und ermöglichen es den Menschen, die Ergebnisse der Augenverfolgung zu approximieren.

Panos Ipeirotis
quelle
1

Sie verwenden es wahrscheinlich, um zu messen, wie schnell Benutzer von einem UI-Element zu einem anderen wechseln, wie oft Klicks fehlen usw.

Normalerweise sehe ich invasive Funktionen zutiefst zynisch, aber ich denke nicht, dass dies ein Datenschutzrisiko darstellt. Es ist schockierend, weil es so ungewöhnlich feinkörnig ist, aber es ist nicht sehr aufschlussreich . Codiert Ihre Mausbewegung Bankdaten? Porno?

Google und dergleichen verfügen über zahlreiche hochwertige Daten, mit denen Sie nachverfolgen können. Mauskoordinaten haben eine sehr begrenzte Anwendung.

Um ein bisschen vom Thema abzukommen:

Je mehr Daten Sie über Personen sammeln, desto mehr Probleme haben Sie. Ich höre (von Schneier und dergleichen), dass Geheimdienste unter der großen Anzahl von Fehlalarmen leiden, die durch ihre immer schneller werdende Datenerfassung ausgelöst werden - das Signal-Rausch-Verhältnis ist miserabel. Ich finde das etwas amüsant.

Spraff
quelle
Mit Google + 1-Skripten, die in Minispielen angezeigt werden und die Maus zur Steuerung verwenden ... Es wird wirklich sehr viel Lärm geben. XD
PicoCreator
1

Es ist unmöglich mit Sicherheit zu sagen, was Google mit diesen Mausbewegungsdaten macht. Wie Sie selbst sehen können, werden nicht viele Informationen an den Server zurückgegeben, sodass Sie sich keine Sorgen machen müssen.

Der erste ist wahrscheinlich ein generischer Ereignishandler. Grund, warum ich denke, wenn Sie die Quelle lesen, können Sie dies in der Zeile sehen, bevor es einen Fehler gibt ("Ungültiges Listener-Argument"); und als nächstes oder nacheinander gibt es einen Wurffehler ("Ungültiger Ereignistyp"). Da die ausgelöste Leitung zwischen diesen beiden (ereignisbezogenen) Ausnahmen liegt, bin ich mir ziemlich sicher, dass es sich um eine Art Ereignishandler handelt. Mit dem Debugger macht es eigentlich nichts (springt nicht zu einer anderen Funktion), also scheint es für die zukünftige Implementierung da zu sein.

Die zweite Funktion ist identisch mit der ersten. Da es sich um gTalk handelt, wird Ihr Status vermutlich aktualisiert (unterwegs, online usw.).

Der dritte scheint Content Updater oder ähnliches zu sein, da Zeichenfolgen wie cacheTimeout usw. darüber verstreut sind.

Meine 2 Cent.

zatatatata
quelle
1

das ist wirklich jenseits von weit hergeholt, aber hier geht es trotzdem ...

Es dreht sich um die Art der Flugbahn und Krümmung einer Mausbewegung von einem Startpunkt zu verschiedenen Attraktoren, dh 2 Elemente / Links auf einer Seite.

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

Kurz gesagt, wenn Sie zwei konkurrierende Links / Schaltflächen einfügen und die Flugbahn zu einem dieser Links analysieren, können Sie ein Muster ableiten oder wie Sie zu der Entscheidung gekommen sind , nur auf einen dieser Links zu klicken (siehe Video gegen 13:00 Uhr).

utonische Automatik
quelle