ทำไม Google +1 บันทึกการเคลื่อนไหวของเมาส์ของฉัน [ปิด]


196

นี่เป็นเพียงหน้าเว็บที่มีช่อง Google +1 บนเว็บไซต์ของฉัน:

ป้อนคำอธิบายรูปภาพที่นี่

ดูเหมือนว่าจะมีการยิงเหตุการณ์ในการเลื่อนเมาส์ทุกครั้ง ใครรู้ว่ามันทำอะไร ฉันค้นหาใน Google (บางทีฉันควรลองใช้ Bing ในครั้งนี้!) แต่ดูเหมือนว่าจะไม่มีใครเขียนถึงมัน มันบันทึกข้อมูลเกี่ยวกับพฤติกรรมการท่องเว็บของผู้เยี่ยมชมของฉัน CAPTCHA เป็นประเภทของการตรวจสอบมนุษย์เช่นพฤติกรรม?

ตัวอย่าง URL กด F12 ในโครเมี่ยมไปที่ไทม์ไลน์และกดบันทึกจากนั้นเลื่อนเมาส์ไปรอบ ๆ หน้านี้ (บวกกับคำถามที่ไม่ต้องกังวล):

https://plusone.google.com/u/0/_/+1/button?hl=en-US&jsh=r%3Bgc%2F22224365-adc8a19e#url=/programming/6667544/google -1-บันทึกเมาส์ย้ายและ size = สูงและนับ = true & id = I1_1310488711647 และผู้ปกครอง = https: //plusone.google.com/u/0/_/+1/button hl = th & 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/

นโยบายส่วนบุคคลของปุ่ม +1 ของ Google

28 มิถุนายน 2554

นโยบายส่วนบุคคลของ Google อธิบายถึงวิธีที่เราปฏิบัติต่อข้อมูลส่วนบุคคลเมื่อคุณใช้ผลิตภัณฑ์และบริการของ Google รวมถึงข้อมูลที่ให้เมื่อคุณใช้ปุ่ม Google +1 นอกจากนี้ข้อมูลต่อไปนี้จะอธิบายวิธีปฏิบัติด้านความเป็นส่วนตัวเพิ่มเติมของเราเฉพาะสำหรับการใช้งานปุ่ม +1 ของคุณ

ข้อมูลที่เรารวบรวมและวิธีการแบ่งปัน

ปุ่ม Google +1 เป็นวิธีที่คุณสามารถแบ่งปันข้อมูลสาธารณะกับคนทั่วโลก ปุ่ม Google +1 ช่วยให้คุณและผู้อื่นรับเนื้อหาส่วนบุคคลจาก Google และพันธมิตรของเรา ข้อเท็จจริงที่ว่าคุณ +1 จะมีการบันทึกบางอย่างโดย Google พร้อมกับข้อมูลเกี่ยวกับหน้าเว็บที่คุณกำลังดูเมื่อคุณคลิกที่ปุ่ม +1 +1 ของคุณอาจปรากฏต่อผู้อื่นเพื่อเป็นการเพิ่มความคิดเห็นด้วยชื่อโปรไฟล์และรูปภาพในบริการของ Google (เช่นในผลการค้นหาหรือในโปรไฟล์ Google) หรือที่อื่น ๆ บนเว็บไซต์และโฆษณาบนอินเทอร์เน็ต

เราจะบันทึกข้อมูลเกี่ยวกับกิจกรรม +1 ของคุณเพื่อให้คุณและผู้ใช้อื่น ๆ ได้รับประสบการณ์ที่ดีขึ้นในบริการของ Google

ในการใช้ปุ่ม Google +1 คุณจะต้องเปิดเผยโปรไฟล์ Google สาธารณะแก่โลกซึ่งอย่างน้อยต้องมีชื่อที่คุณเลือกสำหรับโปรไฟล์ ชื่อนั้นจะถูกนำไปใช้กับบริการต่างๆของ Google และในบางกรณีอาจมีการแทนที่ชื่ออื่นที่คุณใช้เมื่อแชร์เนื้อหาภายใต้บัญชี Google ของคุณ เราอาจแสดงข้อมูลประจำตัวของ Google Profile แก่ผู้ที่มีที่อยู่อีเมลของคุณหรือข้อมูลระบุตัวตนอื่น ๆ

การใช้ข้อมูลที่รวบรวมได้

นอกเหนือจากการใช้งานที่อธิบายไว้ข้างต้นข้อมูลที่คุณให้แก่เรานั้นจะถูกนำไปใช้ภายใต้นโยบายส่วนบุคคลหลักของ Google

เราอาจแบ่งปันสถิติโดยรวมที่เกี่ยวข้องกับกิจกรรม +1 ของผู้ใช้กับสาธารณะผู้ใช้ของเราและพันธมิตรเช่นผู้เผยแพร่ผู้โฆษณาหรือไซต์ที่เชื่อมโยงกัน ตัวอย่างเช่นเราอาจบอกผู้เผยแพร่ว่า“ 10% ของคนที่ +1 หน้านี้อยู่ในทาโคมาวอชิงตัน”

ทางเลือกของคุณ

คุณสามารถดูรายการที่คุณ +1 ในแท็บ +1 บนโปรไฟล์ของคุณ คุณสามารถลบแต่ละรายการออกจากรายการนั้น

คุณสามารถยกเลิกการดูคำแนะนำ +1 ในเว็บไซต์บุคคลที่สาม (รวมถึงโฆษณาบนเว็บไซต์บุคคลที่สาม) จากคนที่คุณรู้จัก

เราจะจัดเก็บข้อมูล (เช่น +1 ล่าสุดของคุณ) ไว้ในเบราว์เซอร์ของคุณ คุณสามารถเข้าถึงและล้างข้อมูลนี้ในการตั้งค่าเบราว์เซอร์ของคุณ

ข้อมูลมากกว่านี้

Google ปฏิบัติตามหลักการความเป็นส่วนตัวของ US Safe Harbor สำหรับข้อมูลเพิ่มเติมเกี่ยวกับกรอบการทำงาน Safe Harbor หรือการลงทะเบียนของเราโปรดดูเว็บไซต์ของกระทรวงพาณิชย์


3
Human like behavior? นั่นเป็นความคิดที่น่าสนใจ ฉันเห็นรหัสติดตามเมาส์ที่คล้ายกันเพียงครั้งเดียวซึ่งเป็นการบันทึกพิกัด X / Y ในตัวแปรทั่วโลก ในภายหลังพวกเขาจะใช้เพื่อเริ่ม / หยุด / ยกเลิกการเลื่อนแบบกำหนดเองบนปลั๊กอิน jQuery มีการนำไปใช้ที่ดีกว่าสิ่งติดตามทั่วโลกนี้ (ซึ่งฉันเปลี่ยนไปในที่สุด)
Mrchief

7
@Mrchief ลูกค้าโป๊กเกอร์บางคนใช้การเคลื่อนไหวของเมาส์เพื่อตรวจจับผู้เล่นอัตโนมัติฉันคิดว่าบางที Google อาจคิดว่ามันเป็นการป้องกันที่มีประสิทธิภาพต่อบอทที่สร้างโปรไฟล์และ + 1ing เว็บไซต์จำนวนมาก แต่ให้น้ำหนักกับเว็บไซต์ของพวกเขา ใครจะรู้ว่า
Tom Gullen

1
สงสัยว่าทำไม Facebook ไม่ทำอะไรเช่นนั้น ... (หรือทำอย่างนั้น)
Mrchief

7
อาจเป็นเพราะการทดสอบ UI บางประเภท ฉันรู้ว่า google ชอบทำการทดสอบ a / b จำนวนมากดังนั้นการทดสอบสีน้ำเงิน 41 ครั้งจึงย้อนกลับมา บางทีพวกเขากำลังพยายามติดตามว่าผู้ใช้เลื่อนผ่านหน้าเว็บอย่างไรเพื่อให้ UI ที่ดีขึ้น
Greg Guida

เครื่องมือที่คุณใช้คืออะไร
Sid

คำตอบ:


123

ดูเหมือนว่าจะทำการเพาะกำเนิดตัวสร้างตัวเลขแบบสุ่มด้วยการเคลื่อนไหวของเมาส์ของคุณ

ตัวจัดการการเลื่อนเมาส์ทำบางสิ่งบางอย่างตามบรรทัดต่อไปนี้:

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และcเป็นตัวแปรที่เริ่มต้นด้วย 1

ทั้งหมดนี้รวมอยู่ในขอบเขตของฟังก์ชันที่ไม่ระบุชื่อซึ่งตัวมันเองจะถูกประเมินทันทีเพื่อส่งคืนฟังก์ชันที่กำหนดให้กับคุณสมบัติที่ชื่อว่า "สุ่ม" ฟังก์ชันที่ส่งคืนนั้นมีลักษณะดังนี้:

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

hash, BTW, เป็นตัวแปรที่เริ่มต้นจากการเป็นกัญชา MD5 คุกกี้ของหน้าเว็บที่เป็นที่ตั้งของที่และnew Date().getTime()Math.random()

(แน่นอนว่า Google อาจเปลี่ยนสคริปต์ที่ส่งคืนได้ตลอดเวลาและทำให้การวิเคราะห์นี้ไม่ถูกต้อง)


4
คำตอบที่ยอดเยี่ยมขอบคุณความคิดใด ๆ ว่าทำไมมันจะต้องมีหมายเลขสุ่ม? ฉันเข้าใจว่าการเคลื่อนไหวของเมาส์เป็นวิธีที่ดีในการสร้างตัวเลขแบบสุ่ม แต่สิ่งนี้จะไม่เกิดขึ้นกับโทรศัพท์มือถือ (ไม่มีเมาส์)
Tom Gullen

27
ไม่ได้Math.random()มาจากการประทับเวลาปัจจุบันหรือไม่ ถ้าเป็นเช่นนั้นด้วยปุ่มที่ปรับใช้อย่างกว้างขวางเช่นนี้คุณคาดหวังว่าจะมีการชนกันมากมาย อาจอธิบายถึงความพยายามพิเศษ
Yahel

7
@yahelc: นี่อาจช่วยได้ กล่าวโดยย่อในปี 2008 เบราว์เซอร์ส่วนใหญ่เริ่มต้นด้วยเวลาเพียงครั้งเดียวไม่ว่าจะเป็นการเริ่มกระบวนการหรือครั้งแรกที่เรียกว่า Math.random () (ในกระบวนการหรือในหน้าต่าง / แท็บ) สิ่งต่าง ๆ อาจมีการเปลี่ยนแปลงตั้งแต่นั้นมาแน่นอน
Anomie

3
สิ่งนี้ดูแปลก ๆ - ถ้านี่เป็นจุดประสงค์พวกเขาจะไม่ใช้เพียงแค่ window.crypto.getRandomValues: (function () {var buf = Uint8Array ใหม่ (1); window.crypto.getRandomValues ​​(buf); 0])}) ()
Rich Bradshaw

3
หากว่ามันคือการให้เมล็ดพันธุ์เครื่องกำเนิดไฟฟ้าแบบสุ่มที่ดีกว่าเมล็ดพันธุ์ที่ให้โดย Google จะเพียงพอใช่ไหม? หรือเลื่อนเมาส์อย่างน้อยหนึ่งหรือสองครั้ง วิธีการในปัจจุบันดูค่อนข้างน่าสงสัยแน่นอน มันคงจะดีถ้าให้ Google แสดงความโปร่งใสที่นี่ซึ่งคนอื่นไม่สามารถให้ได้
Wernight

47

รหัสจริงที่ถูกเรียกใช้งานนั้นมาจากรหัส 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/


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

หากต้องการดูสิ่งที่ฟังจากหน้าต่างลบคุณต้องทำหลังจากนั้นเพราะมันเป็นเพียงการกำหนดตัวแปรไม่ใช่ฟังก์ชันที่คุณสามารถสกัดกั้นได้ ดังนั้นบางครั้งหลังจากโค้ดเริ่มต้นของหน้าเว็บทำงานคุณจะทำเช่นนี้เพื่อบันทึกสิ่งที่ถูกเชื่อมโยง:

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

2
ความคิดที่ดี แต่วิธีนี้จะใช้ไม่ได้หากสคริปต์ตั้งค่ารูปแบบเดิมwindow.onmousemoveแทน (เช่นเดียวกับสคริปต์ของ Google)
Anomie

หากเป็นเช่นนั้นคุณสามารถขอได้ด้วยวิธีเดียวกัน
jfriend00

@Ben Alpert - ฉันเพิ่มรหัสสำหรับ window.onmousemove ในคำตอบของฉันด้านบน
jfriend00

รหัสฟังก์ชันอาจยาวโดยพลการ เราไม่ต้องการที่จะถ่ายโอนข้อมูลหลายกิโลไบต์ลงในคอนโซลดังนั้นฉันเพิ่งเลือกขีด จำกัด ที่สั้นลงซึ่งจะไม่ทำให้หน้าจอบันทึกเสียหาย หากรหัสนั้นไม่เพียงพอที่จะสามารถระบุได้ว่ามันอยู่ที่ใดจำนวนนั้นสามารถเพิ่มขึ้นได้ แต่มันอาจไม่เหมาะสมที่จะดูสิ่งต่าง ๆ ในหน้าต่างบันทึกหากไม่มีความยาวส่วนบน
jfriend00

17

ในโค้ดที่ไม่มีการกระจายณ วันที่ 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 โดยใช้ bitshift จากนั้นเพิ่มมิติอื่น ๆ แล้วคูณทั้งหมดนี้ด้วยเวลาเป็นมิลลิวินาที mod 1000000 นี่ดูเหมือนอัลกอริทึมแบบสุ่ม

ฉันไม่แน่ใจว่าทำไมหน้านี้ถึงต้องการสิ่งนี้บางทีอาจใช้คุกกี้เพื่อป้องกันการคลิก +1 โดยอัตโนมัติ เมื่อคุณคลิก "+1" หน้าจอเข้าสู่ระบบที่ปรากฏขึ้นจะมีหมายเลขสุ่มต่อท้ายเป็นแฮช URL จะลงท้ายด้วย "& hl = th-US # RANDOMNUMBER"


4

ฉันวางเดิมพันเบต้า "In-Page Analytics" ของคุณ สร้างเคอร์เซอร์และคลิกแผนที่ความร้อน


นอกจากนี้ยังมีโปรเจ็กต์ดีๆที่ทำเช่นเดียวกันกับแอป node.jsเช่นเดียวกัน
Pier Paolo Ramon

+1 (sic) เป็นการดีที่จะทราบว่าผู้คนคลิกที่ใดเพื่อรู้ว่าอะไรมีประโยชน์และสถานที่ที่ดีที่สุดสำหรับการโฆษณา
rds

เป็นความคิดที่ดี แต่ไม่มีอะไรเกี่ยวข้องกับหัวเรื่อง;)
naugtur

2

ฉันคิดว่าบทความโดย Guo และ Agichtein จาก CHI 2010 http://www.mathcs.emory.edu/~qguo3/wip287-guo11.pdfสามารถให้แนวคิดเพิ่มเติมเกี่ยวกับสาเหตุที่ Google ทำเช่นนั้น

เห็นได้ชัดว่าการเคลื่อนไหวของเมาส์เป็นพร็อกซี่คร่าวๆสำหรับการเคลื่อนไหวของดวงตาและช่วยให้ผู้คนสามารถประมาณผลลัพธ์การติดตามดวงตา


1

พวกเขาอาจใช้เพื่อวัดความเร็วที่ผู้ใช้ย้ายจากรายการ UI หนึ่งไปยังอีกรายการหนึ่งบ่อยแค่ไหนที่คุณพลาดการคลิก

โดยปกติฉันมีมุมมองที่ดูถูกเหยียดหยามเกี่ยวกับคุณลักษณะที่รุกราน แต่ฉันไม่คิดว่านี่เป็นความเสี่ยงด้านความเป็นส่วนตัว มันน่าตกใจเพราะมันมีความผิดปกติอย่างมาก แต่ก็ไม่ได้เปิดเผยอะไรมาก การเคลื่อนไหวของเมาส์เข้ารหัสรายละเอียดธนาคารหรือไม่ หนังโป๊?

Google และคนที่ชอบนั้นมีข้อมูลคุณภาพสูงมากมายที่จะติดตามคุณ พิกัดของเมาส์มีแอปพลิเคชันที่ จำกัด มาก

หากต้องการออกนอกหัวข้อเล็กน้อย:

ข้อมูลเพิ่มเติมที่คุณรวบรวมเกี่ยวกับผู้คนก็ยิ่งมีปัญหามากขึ้นเท่านั้น ฉันได้ยิน (จาก Schneier และคนอื่น ๆ ) ว่าหน่วยงานข่าวกรองกำลังทุกข์ทรมานจากผลบวกปลอมจำนวนมากที่เกิดจากการได้มาซึ่งข้อมูลที่เร่งตัวขึ้นของพวกเขา - อัตราส่วนสัญญาณต่อเสียงรบกวนนั้นสุดเหวี่ยง ฉันพบว่ามันค่อนข้างน่าขบขัน


ด้วยสคริปต์ Google +1 ที่ปรากฏในมินิเกมซึ่งใช้เมาส์สำหรับการควบคุม ... จะมีเสียงดังมากจริงๆ XD
PicoCreator

1

ไม่สามารถบอกได้อย่างชัดเจนว่า Google ทำอะไรกับข้อมูลการเคลื่อนไหวของเมาส์นี้ อย่างที่คุณเห็นว่าตัวเองไม่ได้โหลดและโหลดข้อมูลกลับไปที่เซิร์ฟเวอร์ดังนั้นจึงไม่ต้องกังวล

ครั้งแรกน่าจะเป็นตัวจัดการเหตุการณ์ทั่วไป เหตุผลที่ฉันคิดว่านั่นคือถ้าคุณอ่านต้นฉบับคุณจะเห็นว่าในบรรทัดก่อนที่จะมีข้อผิดพลาดโยน ("อาร์กิวเมนต์ฟังไม่ถูกต้อง"); และถัดไปหรืออย่างใดอย่างหนึ่งหลังจากที่ถัดไปมีข้อผิดพลาดการโยน ("ประเภทเหตุการณ์ไม่ถูกต้อง") เนื่องจากบรรทัดการยิงอยู่ระหว่างข้อยกเว้นสองประการ (เกี่ยวข้องกับเหตุการณ์) ฉันค่อนข้างแน่ใจว่ามันเป็นตัวจัดการเหตุการณ์บางประเภท การใช้ดีบักเกอร์มันไม่ได้ทำอะไรจริงๆเลย (ไม่ข้ามไปที่ฟังก์ชั่นอื่น) ดังนั้นดูเหมือนว่ามันจะมีไว้สำหรับการใช้งานในอนาคต

ฟังก์ชั่นที่สองเหมือนกับฟังก์ชั่นแรก เนื่องจากเป็น gTalk ฉันคิดว่ามันอัปเดตสถานะของคุณ (ไม่อยู่ออนไลน์ ฯลฯ )

ที่สามน่าจะเป็น updater เนื้อหาหรือสิ่งที่คล้ายกันเนื่องจากคุณสามารถดูสตริงเช่น cacheTimeout ฯลฯ กระจัดกระจายรอบ ๆ

2 เซนต์ของฉัน


1

นี่เป็นสิ่งที่ไกลเกินเอื้อมจริง ๆ แต่ที่นี่มันจะไป ...

มันหมุนรอบประเภทของวิถีและความโค้งของ mousemovement จากจุดเริ่มต้นไปยังตัวดึงดูดที่แตกต่างกันเช่น 2 รายการ / ลิงค์ในหน้า

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

กล่าวโดยย่อหากคุณใส่ลิงค์ / ปุ่มแข่งขันสองรายการและวิเคราะห์เส้นทางไปยังลิงก์ใดลิงก์หนึ่งคุณสามารถอนุมานรูปแบบหรือวิธีการตัดสินใจคลิกเพียงหนึ่งในลิงก์เหล่านั้น (ดู vid ประมาณ 13:00)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.