隨著互聯(lián)網(wǎng)絡(luò)的廣泛普及诈皿,數(shù)以億計(jì)網(wǎng)民的網(wǎng)絡(luò)行為數(shù)據(jù)早已成為最寶貴的資源,企業(yè)通過五花八門的各種手段了解網(wǎng)民的行為和隱私數(shù)據(jù)像棘,用于廣告投遞稽亏、用戶興趣分析等,進(jìn)而作為決策的依據(jù)缕题,利用Web客戶端對用戶行為進(jìn)行收集和追蹤是重要手段之一截歉。
一、 Web客戶端追蹤技術(shù)概述
Web客戶端追蹤烟零,主要是指用戶使用客戶端(通常是指瀏覽器)訪問Web網(wǎng)站時(shí)瘪松,Web服務(wù)器通過一系列手段對用戶客戶端進(jìn)行標(biāo)記和識(shí)別锨阿,進(jìn)而關(guān)聯(lián)和分析用戶行為的技術(shù)墅诡。
實(shí)際上末早,只要通過Web進(jìn)入互聯(lián)網(wǎng)的海洋,Web客戶端追蹤幾乎無時(shí)不刻不在發(fā)生焙糟。當(dāng)你網(wǎng)購時(shí)穿撮,即便沒有登錄悦穿,關(guān)掉瀏覽器后購物車的物品也不會(huì)消失;當(dāng)你訪問其他新聞礁扮、娛樂網(wǎng)站時(shí)太伊,彈出的廣告往往都是近期瀏覽購物網(wǎng)站的類似商品僚焦;稍有意識(shí)的用戶可能會(huì)不定時(shí)清空瀏覽器緩存芳悲、使用“無痕瀏覽”名扛、“隱私保護(hù)模式”等肮韧,然而仍然不能阻止類似廣告的洗腦旺订。
現(xiàn)實(shí)世界可通過體貌特征、身份證件淋纲、生物特征(如指紋信息)等手段對用戶進(jìn)行唯一性識(shí)別洽瞬,Web世界主要通過Cookies技術(shù)伙窃、瀏覽器指紋为障、WebRTC等技術(shù)進(jìn)行識(shí)別放祟。本文主要對Cookies技術(shù)進(jìn)行介紹跪妥。
二眉撵、 典型追蹤技術(shù)—Cookie追蹤
1. Cookie簡介
Cookie纽疟,有時(shí)也用復(fù)數(shù)形式Cookies污朽,在Web世界中其實(shí)際上是用戶瀏覽網(wǎng)站時(shí)缠沈,網(wǎng)站存儲(chǔ)在用戶瀏覽器上的一段信息,并在服務(wù)器和瀏覽器之間傳遞颓芭,用戶與辨別用戶身份和維持狀態(tài)亡问。通常是以cookies:user@domain格式命名的州藕,user是你的本地用戶名酝陈,domain是所訪問的網(wǎng)站的域名沉帮。在現(xiàn)有Windows系統(tǒng)中,一般存放位置在C:\Users\user\AppData\Local\Microsoft\Windows\TemporaryInternet Files\文件夾下待牵。
Cookie利用網(wǎng)頁代碼中的HTTP頭信息,伴隨著用戶請求和頁面在 Web 服務(wù)器和瀏覽器之間傳遞川背。當(dāng)你在瀏覽器地址欄中鍵入了服務(wù)的URL蛤袒,瀏覽器會(huì)向服務(wù)器發(fā)送一個(gè)讀取網(wǎng)頁的請求汗盘,并將結(jié)果回顯隐孽。在發(fā)送之前菱阵,該網(wǎng)頁在你的電腦上尋找服務(wù)網(wǎng)站設(shè)置的Cookie文件晴及,如果找到虑稼,瀏覽器會(huì)把Cookie文件中的數(shù)據(jù)連同前面輸入的URL一同發(fā)送到服務(wù)器势木。
服務(wù)器收到Cookie數(shù)據(jù)啦桌,就會(huì)在他的數(shù)據(jù)庫中檢索你的ID甫男,你的購物記錄板驳、個(gè)人喜好等信息,并記錄下新的內(nèi)容效扫,增加到數(shù)據(jù)庫和Cookie文件中去。如果沒有檢測到Cookie或者你的Cookie信息與數(shù)據(jù)庫中的信息不符合静暂,則說明你是第一次瀏覽該網(wǎng)站谱秽,服務(wù)器的CGI程序?qū)槟銊?chuàng)建新的ID信息,并保存到數(shù)據(jù)庫中峡碉。
以添加購物車為例驮审,Cookies的大致利用過程可表示為:
①、用戶第一次訪問購物網(wǎng)站:
②地来、用戶第二次訪問網(wǎng)站:
③未斑、瀏覽器查看Cookies如下:
當(dāng)然Cookie的用途還遠(yuǎn)遠(yuǎn)不止以上所述,我們?nèi)粘9ぷ髦兴芤姷降牡谌奖O(jiān)測工具如doubleclick芽突、99click等也都需要利用Cookie技術(shù)费就,網(wǎng)站分析工具如GA、百度統(tǒng)計(jì)睬澡、CNZZ等也需要利用Cookie眠蚂。
2. Evercookie
以上所說的Cookie都是指HTTPCookies昔脯。HTTP Cookie是基于瀏覽器的云稚,一方面當(dāng)電腦有多個(gè)瀏覽器時(shí)沈堡,服務(wù)器會(huì)生成多個(gè)Cookie,雖然是同一個(gè)人拐格,但服務(wù)器識(shí)別為多個(gè)用戶捏浊。另一方面金踪,同一臺(tái)電腦多人使用同一個(gè)瀏覽器時(shí)热康,服務(wù)器也只會(huì)生成一個(gè)Cookie姐军,雖然是多個(gè)人奕锌,但服務(wù)器識(shí)別為一個(gè)用戶村生。HTTP Cookies有數(shù)量限制趁桃,大多數(shù)瀏覽器支持最大為4096字節(jié)的Cookie油啤,而且只允許每個(gè)站點(diǎn)存儲(chǔ)30或50個(gè)Cookie(不同瀏覽器支持的數(shù)量不同)蟀苛,當(dāng)超過時(shí)幽告,最早的Cookie便被刪除冗锁。
有一種Cookie:FlashCookie可以跨瀏覽器共享冻河,不管用戶計(jì)算機(jī)上安裝了多少個(gè)瀏覽器芋绸,F(xiàn)lashCookie都能夠使所有得瀏覽器共用一個(gè)Cookie摔敛。Flash Cookie可以容納最多10萬字節(jié)的數(shù)據(jù)马昙,遠(yuǎn)遠(yuǎn)超過HTTP Cookie的4096字節(jié)。所有瀏覽器都提供了清除HTTP Cookie的快捷方式子房,但FlashCookie沒有這種快捷方式证杭,并且其保存位置較為隱蔽解愤,一般網(wǎng)民難以將其清除送讲。
Evercookie是一個(gè)用于在瀏覽器中持久化Cookie的JavaScriptAPI哼鬓。Evercookie故名思義其可以讓Cookie存儲(chǔ)在非Cookie目錄肥橙,例如Flash Cookie和HTML5 Storage魄宏。簡單的說,其為了防止用戶通過清空瀏覽器緩存等方式清除已保存的Cookie存筏,Evercookie將UserID和Cookie Data通過多種機(jī)制保存到系統(tǒng)多個(gè)地方(見下圖)宠互,其中就有上述HTTPCookies、Flash Cookie——如開啟本地共享對象(Local Shared Objects)甚至可以跨瀏覽器傳播椭坚、Web History以及一些HTML5存儲(chǔ)特性予跌。如果用戶刪除其中某幾處的Cookie,當(dāng)Evercookie發(fā)現(xiàn)用某種機(jī)制存儲(chǔ)的Cookie被數(shù)據(jù)將刪除之后善茎,它將利用其它機(jī)制創(chuàng)建的Cookie數(shù)據(jù)來重新創(chuàng)建仍然可以恢復(fù)Cookie券册,大多數(shù)用戶對這些Cookie保存技術(shù)不甚了解,他們不大可能徹底清除某一Cookie。
目前,其支持的存儲(chǔ)機(jī)制如上圖,開源代碼:https://github.com/samyk/evercookie
3. Cookie同步
Cookie同步一般是指用戶訪問某A網(wǎng)站時(shí),該網(wǎng)站通過頁面跳轉(zhuǎn)等方式將用戶的Cookie發(fā)送到B網(wǎng)站,使得B網(wǎng)站獲取到用戶在A網(wǎng)站的用戶隱私信息辱匿,然后通過RTB(Real Time Bidding)乐尊、AdNetwork等一系列平臺(tái)進(jìn)行有效的廣告推送服務(wù)(此部分涉及SSP夺颤、DSP、RTB、DMP等一系列廣告推送服務(wù)和平臺(tái))。
如上圖,用戶通過瀏覽器訪問A網(wǎng)站,瀏覽器將A網(wǎng)站的Cookie一同發(fā)送到A服務(wù)器,A網(wǎng)站服務(wù)器通過該Cookie獲取到用戶的跟蹤ID信息琅坡,并構(gòu)造一個(gè)包含用戶ID信息的跳轉(zhuǎn)URL坞淮,瀏覽器接收后進(jìn)行頁面跳轉(zhuǎn),跳轉(zhuǎn)到B網(wǎng)站的同時(shí)將B網(wǎng)站的Cookie信息一同發(fā)送到B網(wǎng)站,B網(wǎng)站便可將該用戶在A網(wǎng)站的信息和本網(wǎng)站的信息進(jìn)行關(guān)聯(lián),從而進(jìn)行后續(xù)的針對性的廣告推送等服務(wù)。
研究人員通過訪問了Alexa排名前1500網(wǎng)站,發(fā)現(xiàn)兩個(gè)追蹤者進(jìn)行Cookie同步以后,可以把數(shù)據(jù)完全共享逼友,就像是一個(gè)追蹤者一樣黎烈。利用Cookie同步可以一定程度防止用戶清除Cookie烈炭,當(dāng)用戶清除同步網(wǎng)站一方的Cookie后霹疫,如果同步的另一方利用一定手段(如上述Evercookie)恢復(fù)了Cookie,則經(jīng)過同步后可以將網(wǎng)站雙方Cookie數(shù)據(jù)重新恢復(fù)關(guān)聯(lián)。
如上圖针饥,步驟1藐守,用戶訪問A網(wǎng)站慎恒,其User ID為123丹鸿,Cookie記錄其歷史記錄(cnn.com骡澈,nyt.com)。步驟2亏较,其與B網(wǎng)站進(jìn)行Cookie同步,B網(wǎng)站的Cookie為ABC炉旷。此時(shí)B網(wǎng)站將兩者進(jìn)行關(guān)聯(lián)惶看,得知ABC用戶在A網(wǎng)站的歷史記錄冠息。步驟3孕索,用戶刪除本地存儲(chǔ)的Cookie,并重新瀏覽A網(wǎng)站沿猜,此時(shí)A網(wǎng)站之前的Cookie已經(jīng)失效啼肩,便重新生成Cookie赦拘,其User ID為456蹋艺,歷史記錄為yahoo.com等。步驟4咏窿,假設(shè)網(wǎng)站B利用Evercookie恢復(fù)了其Cookie(上圖未表示)萝挤,并重新進(jìn)行Cookie同步御毅,因其User ID都是ABC,此時(shí)便可將456的User ID和123的User ID進(jìn)行關(guān)聯(lián)怜珍,得知用戶的所有歷史記錄端蛆。
不少安全工具甚至是瀏覽器都允許或者引導(dǎo)關(guān)閉追蹤C(jī)ookie,Cookie追蹤越來越受限制酥泛,瀏覽器指紋追蹤漸漸成為了Web追蹤的重要技術(shù)手段今豆,且聽下回分解。