還記得?2013年央視3·15晚會上關于Cookie泄露個人隱私的一段節目激起了軒然大波,Cookie這個IT術語瞬間紅遍全國。很多網民對Cookie有嚴重的誤解,因此,有必要在網民中間普及Cookie相關知識,本文將試圖用通俗化的語言幫助網民理解Cookie的基本常識。
當我們在瀏覽器地址欄里輸入諸如“http://www.xys.org”這樣的地址時,我們就是告訴瀏覽器,用http協議去www.xys.org這個Web服務器上獲取缺省文檔并予以展示。所謂“協議”,是人為規定的計算機和計算機之間能相互理解的一種特殊的“語言”,HTTP協議是諸多互聯網應用協議中的一個,不過卻是當下最熱門的一個互聯網應用協議,和它比起來,POP3協議、Telnet協議、FTP協議、Gopher協議已經像是恐龍時代的產物了,基于上述古老協議產生的應用,基本上都已經被基于HTTP協議的應用取代了。
和那些古老協議相比,HTTP協議的一個優勢是對客戶端的應答速度較快。這要得益于它被設計為無連接無狀態的協議。所謂無連接無狀態,就是執行HTTP協議的Web服務器在處理了客戶端的請求之后,立即就關閉了連接,也不保存客戶端的訪問狀態,這就減少了服務器對內存的消耗和網絡帶寬的占用,相應就提高了服務器的工作效率。
我們可以用一個模擬生活場景來理解它們的工作模式。假設有一群顧客到商店里購物,對于POP3、FTP這樣的協議來說,它們所安排的售貨員為顧客提供一對一服務,直到顧客最終離開商店為止,如果售貨員數量不足,其他的顧客就要等待;而對于HTTP協議,售貨員只在顧客需要交互時才出現,三言兩語之后就立刻跑去應付另外一個顧客的交互請求,售貨員雖然忙一些,但即使很少的售貨員也能應付很多的顧客,對于商店來說,工作效率提高了。
可惜的是,HTTP協議下的售貨員是個臉盲癥患者,它把每一個來詢問它的顧客都當成一個新顧客。這和POP3、FTP等協議下的售貨員不同,那些售貨員都是從頭到尾跟著你的,你要是問它:“雞蛋多少錢一斤?”它回答:“5塊錢一斤。”你說:“來10斤。”它會回答:“好嘞,10斤雞蛋,您拿好了。”而在HTTP協議下是這樣的——你問售貨員:“雞蛋多少錢一斤?”它回答:“5塊錢一斤。”你說:“來10斤。” 這時,它會滿臉茫然:“你是誰?來10斤什么?我不記得你跟我說過話。”你:“……”
HTTP協議下的售貨員要想很好的處理上述情況,就只能在你身上打上特定的標記,例如,你去問售貨員:“這雞蛋多少錢一斤?” 它回答:“5塊錢一斤”,同時,它在你身上貼張紙條“此人要買雞蛋”,這樣當你跟售貨員說“來10斤”時,它聽到你說話的同時,又看到你身上這個“此人要買雞蛋”的紙條,自然就會明白你要買10斤什么,也就能正確地給你提供服務了。
從Web網站設計的角度來講,要標記客戶端計算機保存客戶端訪問狀態,有三種常用方法:一是在返回給客戶端的HTML頁面中加入一些不顯示的信息,這些信息會在用戶點擊頁面中按鈕進行提交時發送到服務器上;二是在返回給客戶端的HTML頁面的鏈接地址中加入一些信息,點擊這些鏈接時就把這些信息回傳到服務器上了;三就是我們今天要談的主角:Cookie技術。
Cookie里的內容是服務器在把HTML頁面數據返回給客戶端的時候附加的一些信息,客戶端瀏覽器在收到這些信息后,將其單獨保存在計算機上某個特定的文件夾內,形成一個和服務器域名對應的文本文件,這些特殊文件里的特殊格式的文本文件就被稱為Cookie,當瀏覽器再次訪問同一個服務器的時候,會把上一次保存的Cookie內容同時發送到指定的服務器上。
Cookie并不神秘,它的出現是為了克服我們上面提到的三種標記方法中前兩個方法所存在的不足。那些方法中保存的信息的有效期很沒譜:如果瀏覽器關閉,頁面消失,所保存的信息就沒了;如果用戶把頁面用瀏覽器的“另存為”功能保存在計算機上,所保存的信息又會是永久存在的,而Cookie內保存的信息的有效期可以由服務器指定。此外,訪問網站A頁面時保存的信息有可能在B頁面也有用,用方法一就沒法子讓他們共享;方法二雖然能夠跨頁面甚至跨服務器共享信息,但一個較為嚴重的問題是能傳輸的數據量太少。不過,歸根結底,服務器采用哪種辦法在客戶端上打標記是網站設計時綜合各種因素后自行選擇的結果,作為我們使用者,客觀上講,只能被動接受他們的設計,除非你不使用他們的服務,或者愿意接受客戶端無標記所帶來的混亂和麻煩。
同樣,服務器在客戶端打標記時保存什么信息,也是網站設計時就確定了的事,網站用這些信息干什么,用戶不可能知道,用戶只有被動接受。這一點跟用不用Cookie技術無關,只要服務器需要給客戶端打標記,都是這樣。作為用戶,我們只能選擇那些有口碑的,對用戶隱私保護考慮比較周到的網站,對于那些來路不明、亂七八糟的小網站,還是敬而遠之吧。此外,我們還可以在退出瀏覽器的時候清空Cookie,這樣做除了再次訪問網站時麻煩一點外,沒有什么大的壞處,就好像我們出了商店之后就可以把售貨員貼在身上的紙條去掉一樣——除非你希望下次進商店之后售貨員還能認出那些標記。
現在存在一種叫做“第三方Cookie”的東東,它和所謂“第一方Cookie”沒有本質上的區別,只不過它是由你訪問的網站(“第一方網站”)中加載的第三方網站的代碼創建的,Cookie中的域名指向的是第三方網站的域名,Cookie中的信息會回傳到第三方網站上去。打個比方,就是你去甲商店里,那里的售貨員除了在你身上留自己商店的標記,還附帶幫乙商店在你身上打個標記,這樣當你去乙商店的時候,它的售貨員就能識別出你身上已經打過的標記。第三方Cookies是網絡廣告公司的最愛,因為它們可以在用戶密集的網站上加入自己的代碼,從而可以獲取自己需要的信息。從理論上講,它的安全性和“第一方Cookie”是一樣的,但是,第一方網站和第三方網站合作的時候,對第三方網站的Cookie沒有絲毫控制權,我們對第一方網站的信任,卻自動轉移到第三方網站上,這就造成一種隱私保護上的隱患。不過,目前主流瀏覽器都在“設置”里提供了對第三方Cookie是否接受的選項,而且越來越多的瀏覽器會默認禁止接受第三方Cookie。
那么,利用Cookie技術能否如3·15晚會上暗訪廣告銷售人員時他們所吹噓的那樣“可以將全國90%的用戶盡在掌握。他是男是女,年齡、身份,受教育程度,包括您的郵件注冊,包括您參加某個品類抽獎的注冊”“拿到cookie以后什么都可以知道,包括手機電腦多少都可以知道”?
理論上講,Cookie里面當然可以存儲這些信息,但是,像性別、年齡、QQ號等等這些精確的個人信息,除了你自己提交給網站再由網站記錄在Cookie里之外,是不可能憑空出現在Cookie里的。而正規設計的網站,一般不會把這些信息保存在Cookie里(用戶一清空Cookie就沒了),它們最有可能將其保存在自己的數據庫中,Cookie里頂多保存一個相關聯的身份識別號碼。
當然像興趣愛好、年收入情況、上什么網等等信息,倒是有可能通過Cookie獲得,不過獲得的方法也不是直接從Cookie里讀取,而是通過Cookie將客戶端和一系列訪問事件關聯起來,用數據挖掘的方法獲得。例如,第三方網站通過Cookie發現我所用的計算機的瀏覽器在某門戶網站里訪問了很多跟天文有關的頁面,它就可以推斷我喜愛天文。只是這樣所得的結論是很不精確的,萬一是我的朋友用我的電腦訪問了這些頁面呢?更不要說我們可以通過清除Cookie來干擾它的數據挖掘過程和結論。只不過廣告主對分析結論的準確度不太講究,他們只要保證自己的廣告能夠覆蓋特定群體就滿足了,“寧可錯殺千人勿使一人漏網”而已。
談到這里,需要提醒網民的是,雖然保存在自己計算機上的Cookie是安全的,但Cookie一旦被流氓軟件截獲和上傳,其后果將是災難性的。
2013年2月1日,《信息安全技術公共及商用服務信息系統個人信息保護指南》國家標準正式實施,這是我國個人隱私保護領域的一項重要進展。長期以來,我國個人隱私保護方面存在嚴重不足,相當一部分網民對此毫不在意,認為只有名人、大人物才需要保護個人隱私,這種錯誤觀念使得自家電腦門戶洞開、流氓軟件大行其道,同時大批網民的個人資料被釣魚網站利用、被中小網站收集販賣。真誠希望廣大網民能夠從此重視這個問題,保護好自己的個人隱私不被非法侵害。
(作者:飛蠓)
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!