論Cookie的安全性和隱私性
這兩天由于315的原因,Cookie這東西突然特別火,據(jù)說很多網(wǎng)友都忙著刪掉自己瀏覽器中的Cookie。一開始我還覺得挺無聊的,央視不懂亂說什么啊。直到前兩天,家里一個親戚跟我說:“原來我們上網(wǎng)干什么你們都知道啊,還看我們的郵件,這不一點隱私都沒有了嘛。太可怕了。”
我才意識到這個問題誤導(dǎo)得太嚴(yán)重了,做為一個多年從事互聯(lián)網(wǎng)Web開發(fā)工作的工程師,我覺得我應(yīng)該說點什么。下面我來給大家介紹一下Cookie,看看你的Cookie安全嗎?
1、Cookie是什么?
央視這一點解釋的還算可以,它是一個數(shù)據(jù)包,每次訪問網(wǎng)站的時候瀏覽器都會將該網(wǎng)站的Cookie發(fā)回給網(wǎng)站服務(wù)器,同時網(wǎng)站也可以隨意更改你機(jī)器上對應(yīng)的Cookie。但有一個很重要的信息視頻中沒有提到:Cookie不是只有一個,而是一個網(wǎng)站一個,所以視頻中把它比喻成網(wǎng)絡(luò)身份證的說法是不準(zhǔn)確的。它不是你在網(wǎng)絡(luò)中的唯一標(biāo)識,只是你在某個網(wǎng)站的唯一標(biāo)識。
2、Cookie中都有什么東西?
這個取決于網(wǎng)站自身,視頻中說網(wǎng)站會存儲一些重要的用戶信息(什么用戶名、密碼、瀏覽記錄、IP地址什么的)到Cookie里。事實上:
普通網(wǎng)站都不會存重要的信息,它們僅僅存一個你的登陸狀態(tài),也就是你拿用戶名密碼換取的令牌,還有就是網(wǎng)站針對你的判定(比如你在這個網(wǎng)站上的唯一標(biāo)識是什么,你訪問的是我們的哪臺服務(wù)器,你使用的是我們的哪個版本的產(chǎn)品),這些信息你都不需要關(guān)心,它和你的隱私一點關(guān)系都沒有。
文藝一點的網(wǎng)站會將這些信息進(jìn)行加密,目的是防止別人偽造這些信息欺騙網(wǎng)站。
央視描述的網(wǎng)站(在Cookie里存用戶名、密碼的,也許是央視網(wǎng))的做法在互聯(lián)網(wǎng)上是極其極其少見的,可能只有外行或者剛學(xué)網(wǎng)絡(luò)開發(fā)的學(xué)生會這么做,這種網(wǎng)站是極其不安全的,你的信息很容易就泄漏了,所以還是少去訪問。
3、Cookie會被人竊取嗎?
視頻中已經(jīng)說了,Cookie只能被放置它的網(wǎng)站讀取。這一點是瀏覽器保證的,這也是瀏覽器的一個重要的安全機(jī)制。如果你覺得你的瀏覽器不能保證這一點,那就換個靠譜的,比如IE9啊,Chrome啊,F(xiàn)irefox啊都是相當(dāng)不錯的。這么說Cookie是安全的了?也不一定,Cookie在傳輸過程中和網(wǎng)站方都有可能被竊取。我舉個不太恰當(dāng)?shù)睦樱?/p>
我們可以把用戶訪問網(wǎng)站的過程比做你給網(wǎng)站寫一封信,信的內(nèi)容可以比做你提交給網(wǎng)站的一些信息(比如你的性別啊,年齡啊),Cookie可以比做信封中的寄信人,標(biāo)識你是誰。那么在整個寄信過程中,郵電局是完全有機(jī)會竊取你的信封的,而網(wǎng)站也可以將你的信封賣給別人。但是!!!這兩方其實已經(jīng)擁有了你這封信的內(nèi)容了,你覺得他們有必要偷你的信封嗎?
事實上,Cookie的盜用一般在你使用了不安全的網(wǎng)絡(luò)(比如公共場所的WiFi),或者網(wǎng)站出現(xiàn)安全漏洞的情況下才會放生,前者發(fā)生的概率就比較低,而后者對網(wǎng)站造成的影響遠(yuǎn)比Cookie被盜這點小事大很多,在互聯(lián)網(wǎng)公司是嚴(yán)重的故障,一經(jīng)發(fā)現(xiàn)很快就會堵上的。
4、那他們說的什么掌握幾億Cookie啊,又網(wǎng)站布碼啊什么的,聽起來好厲害的樣子,這又是怎么回事?
通過上面我們已經(jīng)知道了,Cookie被竊取是一個比較小概率的事件,不可能達(dá)到幾億這個級別。視頻中宣稱的各種華麗的數(shù)據(jù)其實是銷售人員在忽悠廣告主,將一個很簡單的實用技術(shù)術(shù)語說得很牛逼的樣子。真相是這樣的:
我們上文提到“每次訪問網(wǎng)站的時候瀏覽器都會將該網(wǎng)站的Cookie發(fā)會給網(wǎng)站服務(wù)器”。那么如果我網(wǎng)站里有一張圖片,瀏覽器訪問這張圖片的時候會發(fā)哪個Cookie呢?答案是提供圖片服務(wù)網(wǎng)站的Cookie。
你在訪問網(wǎng)站S的時候,你同時也以B用戶的身份訪問了B網(wǎng)站。你說“我沒在B網(wǎng)站注冊啊,怎么會是B網(wǎng)站用戶”。嘿嘿,不用你注冊,因為也不需要你知道,他是自動分配一個帳戶給你的,如果像S這類的網(wǎng)站多了,B網(wǎng)站想在不同網(wǎng)站之間都能定位到你,怎么辦?把分配給你的帳戶存在B的Cookie里就行了啊。這就是它們所謂的幾億的Cookie。至于布碼,其實就是訪問那張圖片的代碼,甚至可能就是你在頁面中看到的廣告圖。你可能注意到B網(wǎng)站在拿到Cookie的同時,還獲取到了一些信息,這些信息是否涉及到隱私就看網(wǎng)站S的節(jié)操了。
一般大網(wǎng)站只會把一些簡單的頁面信息給B,比如看了什么視頻啊,新聞啊等等。其目的也是讓廣告主投放的廣告更精準(zhǔn)。至于還有說得到用戶名密碼什么的,我只能說,兄弟你被釣魚了,網(wǎng)站是不可能販賣自已用戶的密碼的,這么做沒有意義,估計你是訪問了什么亂七八糟的網(wǎng)站,騙你填了什么用戶名密碼,然后被信息賣掉了,這和Cookie毛關(guān)系都沒有。
5、網(wǎng)站這么做算侵犯隱私嗎?
這個不好說,比如你覺得你關(guān)注什么新聞,買了什么玩具,看了什么視頻(愛情動作片略過)可能不算隱私。但你可能不希望別人知道你買過什么藥,看過介紹治療某些病的網(wǎng)頁,這些對于很多人來說是算做隱私的。這是訪問跟蹤技術(shù)最有爭議的一點。
6、我有潔癖,就不想被跟蹤,那怎么辦?
瀏覽器都有一個禁止第三方Cookie的功能,你只要打開他就可以不被跟蹤了,但是!!!有可能一些網(wǎng)站的功能就無法使用了。所以請慎重。
7、那么我如何保護(hù)自己的隱私不泄漏呢?
這個話題太大了,我說一點原則吧:
不要在你不清楚來源的網(wǎng)頁上填寫任何個人信息,比如視頻里說的知道你的年齡、性別、收入等等,其實就是你在不同網(wǎng)站填寫的信息被他們獲取后整合得到的,因為市面上還飄著一些沒節(jié)操的公司販賣的個人信息,他們只要以對比數(shù)據(jù)就可以跟你對上號。
敏感信息任何網(wǎng)站都不要填寫,大網(wǎng)站雖然不會主動販賣你的信息,但系統(tǒng)可能會存在漏洞,泄漏出去一些個人信息,例子挺多的,我就不點名了。