IT story

Google +1이 마우스 움직임을 기록하는 이유는 무엇입니까?

hot-time 2020. 5. 10. 10:24
반응형

Google +1이 마우스 움직임을 기록하는 이유는 무엇입니까? [닫은]


내 웹 사이트에 Google +1 상자가있는 페이지에만 있습니다.

여기에 이미지 설명을 입력하십시오

마우스를 움직일 때마다 이벤트가 발생하는 것 같습니다. 아무도 그것이 무엇을하는지 알고 있습니까? Google에서 검색했습니다 (아마도 Bing을 한 번 시도해야합니다!). 그러나 아무도 그것에 대해 쓰지 않은 것 같습니다. 방문자가 습관을 탐색하는 것에 대한 정보를 기록하고 있습니까? 인간과 같은 행동을 감지하는 것이 일종의 보안 문자입니까?

URL 예, 크롬에서 F12 키를 누르고 타임 라인으로 이동하여 레코드를 누른 다음 마우스를이 페이지 주위로 이동하십시오 (이 질문에 더해 걱정하지 마십시오).

https://plusone.google.com/u/0/_/+1/button?hl=ko-KR&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 = ko-KR & jsh = r % 3Bgc % 2F22224365-adc8a19e # url = https : //stackoverflow.com/questions/6667544/google-1-recording-mouse-move&size=tall&count=true&id=I1_1310488711647

가치가있는 것 (이것이 인기있는 질문 일 것임을 알 수 있습니다), 그 뒤에 사악한 것이 없다고 생각하지 않으며, 쓸모없는 인공물 / 버그 일 수도 있지만 일종의 추적을 수행하는 경우, 글쎄, 그것은 조금기만적인 것 같습니다.

Google +1 개인 정보 취급 방침

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

Google +1 버튼 개인 정보 취급 방침

2011 년 6 월 28 일

Google 개인 정보 취급 방침에는 Google +1 버튼을 사용할 때 제공되는 정보를 포함하여 Google 제품 및 서비스를 사용할 때 개인 정보를 취급하는 방법이 설명되어 있습니다. 또한 다음은 +1 버튼 사용과 관련된 추가 개인 정보 보호 관행에 대해 설명합니다.

수집 한 정보 및 공유 방법

Google +1 버튼을 사용하면 전세계 사람들과 정보를 공개적으로 공유 할 수 있습니다. Google +1 버튼은 귀하와 다른 사람들이 Google 및 파트너로부터 맞춤 콘텐츠를받는 데 도움이됩니다. +1 버튼을 클릭했을 때보고 있던 페이지에 대한 정보와 함께 +1 한 내용이 Google에 기록됩니다. +1은 Google 서비스 (예 : 검색 결과 또는 Google 프로필) 또는 웹 사이트 및 인터넷의 다른 곳에서 프로필 이름과 사진이있는 주석으로 다른 사람에게 표시 될 수 있습니다.

Google은 귀하와 다른 사용자에게 Google 서비스에 대한 더 나은 경험을 제공하기 위해 귀하의 +1 활동에 대한 정보를 기록합니다.

Google +1 버튼을 사용하려면 최소한 공개적으로 공개 된 Google 프로필이 있어야하며 여기에는 최소한 프로필에 대해 선택한 이름이 포함됩니다. 이 이름은 Google 서비스에서 사용되며 경우에 따라 Google 계정에서 콘텐츠를 공유 할 때 사용한 다른 이름을 대체 할 수도 있습니다. 귀하의 이메일 주소 나 기타 식별 정보가있는 사람들에게 귀하의 Google 프로필 신원이 표시 될 수 있습니다.

수집 된 정보의 사용

위에서 설명한 용도 외에도 귀하가 제공 한 정보는 Google의 기본 개인 정보 취급 방침에 따라 사용됩니다.

Google은 사용자의 +1 활동과 관련된 집계 통계를 일반인, 사용자 및 게시자 (예 : 게시자, 광고주 또는 연결된 사이트)와 공유 할 수 있습니다. 예를 들어 게시자에게 "이 페이지를 +1 한 사람의 10 %가 워싱턴 주 타코마에 있습니다"라고 말할 수 있습니다.

당신의 선택

프로필의 +1 탭에서 +1 한 항목 목록을 볼 수 있습니다. 해당 목록에서 개별 항목을 제거 할 수 있습니다.

알고있는 사람들의 타사 웹 사이트 (타사 사이트의 광고 포함)에 대한 +1 권장 사항 표시를 거부 할 수 있습니다.

브라우저에 데이터 (예 : 최근 +1)가 로컬로 저장됩니다. 브라우저 설정에서이 정보에 액세스하고 지울 수 있습니다.

추가 정보

Google은 미국 세이프 하버 개인 정보 보호 원칙을 준수합니다. Safe Harbor 프레임 워크 또는 등록에 대한 자세한 내용은 Department of Commerce 웹 사이트를 참조하십시오.


마우스 움직임으로 난수 생성기를 시드하는 것으로 보입니다.

마우스 이동 처리기 자체는 다음과 같은 작업을 수행합니다.

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

dis (screen.width * screen.width + screen.height) * 1000000이며 c1로 시작하는 변수입니다.

All of this is wrapped in the scope of an anonymous function, which itself is immediately evaluated to return a function that is assigned to a property named "random". That returned function looks something like this:

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

hash, BTW, is a variable that starts out as the MD5 hash of the page's cookies, location, the new Date().getTime(), and Math.random().

(Note, of course, that Google may change the script returned at any time and hence invalidate this analysis)


The actual code that is being executed is derived from the Shindig code found here:

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

A secure random number is needed to ensure that the secure postMessage channel created here cannot be compromised by scripts on the page to execute arbitrary actions.

Here's an article that explains why using Math.random() is bad:

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


If you can get your script loaded first, you could hook addEventListener and log everyone who is setting addEventListener and see who's doing it and then, by looking at the relevant code, see what they're doing.

Put this in place before the Google code loads:

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

To see what was listening to window.onmousemove, you'd have to do it afterwards because it's just a variable assignment, not a function that you can intercept. So sometimes after the initialization code of the page runs, you would do this to log what was hooked up to it:

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

In the uncluttered code as of Jul 22, you'll notice the onmousemove is part of the Gb.random class:

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

It's multiplying sum of x and y by 2^16 using bitshift, then adding some other dimensions and multiplying all this by time in milliseconds mod 1000000. This definitely looks like a randomizing algorithm.

I'm not sure why the page would need something like this, perhaps it's using a cookie, preventing automated +1 clicking? When you click the "+1" the login screen that pops up appears to have a random number appended as the hash, the url ends with "&hl=en-US#RANDOMNUMBER"


I bet you its "In-Page Analytics" Beta. Making a cursor and click heat-map.


I think that the paper by Guo and Agichtein from CHI 2010 http://www.mathcs.emory.edu/~qguo3/wip287-guo11.pdf can provide further ideas on why Google is doing that.

Apparently mouse movements is a rough proxy for eye movement and allows people to approximate eye tracking results.


They probably use it to measure how quickly users move from one UI item to another, how often clicks miss etc.

I normally have a deeply cynical view of invasive features but I don't think this is a privacy risk. It's shocking because it's so unusually fine-grained, but it's not very revealing. Does your mouse movement encode bank details? Porn?

Google and the like have plenty of high-quality data to track you with. Mouse coordinates have very limited application.

To go off-topic a bit:

To an extent, the more data you collect about people the more problems you have. I hear (from Schneier and the like) that intelligence agencies are suffering from the huge numbers of false positives triggered by their ever-accelerating data aquisition -- the signal-to-noise ratio is abysmal. I find this somewhat amusing.


It's impossible to tell for certain, what Google does with this mouse movement data. As you can see yourself, it's not returning loads and loads of information back to the server, therefore, nothing to worry about.

The first is probably a generic event handler. Reason why I think that is if you read the source, you can see that on the line before there is throw Error("Invalid listener argument"); and next or one after the next there's throw Error("Invalid event type"). Since the fired line is in between these two (event related) exceptions, I'm pretty sure that it's some kind of an event handler. Using debugger, it doesn't do anything really (doesn't jump to some other function) so it seems that it's there for future implementation.

The second function is identical to the first one. Since it's gTalk's I suppose it updates your status (away, online etc).

The third seems to be content updater or something similar, since you can see strings like cacheTimeout etc scattered around it.

My 2 cents.


this is really beyond from far fetched, but here it goes anyway ...

it revolves around the type of trajectory & curvature of a mousemovement from a start point towards different attractors take i.e. 2 items/links on a page.

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

in short, if you put two competing links/buttons and analyze the trajectory towards one of those links, you can deduce a pattern or how you reached the decision to click only 1 of those links (see vid around 13:00)

참고URL : https://stackoverflow.com/questions/6667544/why-does-google-1-record-my-mouse-movements

반응형