超載
其實從Cookie(曲奇)的名字就可以猜到,這肯定是個讓用戶能嘗到“甜頭”的功能,沒錯,它的主要能力就是保留上網(wǎng)痕跡,輔助網(wǎng)絡(luò)瀏覽,比如將??吹男吞栒{(diào)整到更靠前的位置,自動填寫頁面中常用的用戶名和密碼等,讓大家上網(wǎng)更方便(圖2)。
具體來說,首先瀏覽器和網(wǎng)站服務(wù)器之間是通過HTTP協(xié)議來進(jìn)行通訊的,而這樣的協(xié)議是一種無狀態(tài)的協(xié)議,簡言之當(dāng)我們操作某些功能時,比如搜索功能,網(wǎng)站服務(wù)器端就會接收到我們在瀏覽器上輸入的搜索內(nèi)容需求,并作出相對應(yīng)的響應(yīng),完成響應(yīng)之后就會結(jié)束與該用戶的連接。但是,HTTP協(xié)議僅僅是“通道”,它無法負(fù)責(zé)記錄瀏覽器和服務(wù)器端溝通的內(nèi)容,這就需要一個“記事本”來記錄,這便是Cookie。
通常,Cookie保存在客戶端中,按照客戶端中的存儲位置,Cookie又分為內(nèi)存保存和硬盤保存兩種。保存在內(nèi)存的Cookie,會隨著客戶端(如瀏覽器的隱身模式)關(guān)閉而清除,存在時間短暫;而保存在硬盤中的Cookie,則除非用戶手動清理或者到了過期時間,否則Cookie會保存較長時間。
Cookie固然方便使用,但是它也有致命的缺陷。第一,Cookie會被附加在每個HTTP協(xié)議請求中,所以無形中增加了流量消耗;第二,由于在HTTP協(xié)議請求中的Cookie是明文傳遞的,所以安全性成問題,除非使用超文本傳輸安全協(xié)定;第三,Cookie的大小限制在4KB左右,對于復(fù)雜的存儲需求來說是不夠用的。
雖然Cookies沒有中電腦病毒那么危險,但它仍包含了一些敏感消息:用戶名、電腦名、使用的瀏覽器和曾經(jīng)訪問的網(wǎng)站。而且隨著技術(shù)手段的發(fā)展,和商業(yè)需求的應(yīng)用,例如Cookie數(shù)據(jù)并不會限定在一個網(wǎng)站內(nèi),有些網(wǎng)站的Cookie數(shù)據(jù)會主動或被動地流傳出去,你訪問了某個顯卡官網(wǎng),回頭就發(fā)現(xiàn)電商網(wǎng)站的首頁甚至是跳窗廣告給你推薦顯卡,這很可能就是Cookie的鍋。在如今隱私非常受重視的今天,這顯然是讓人反感的行為(圖3)。
此外,Cookie本身也不是很安全,別忘了它還包含你在網(wǎng)頁上輸入的內(nèi)容,特別是用戶名和密碼。這些Cookie數(shù)據(jù)如果也流傳到網(wǎng)站之外,危險性就極高了;此外有些Cookie數(shù)據(jù)還會存在本地,但加密措施不好,一旦電腦中了木馬或病毒,也會直接泄露用戶名密碼(圖4)。
由于Cookie的危害已經(jīng)被大家認(rèn)識,所以很多瀏覽器默認(rèn)是不支持的,有些網(wǎng)站如果希望大家開啟也會有明顯的提示。筆者建議,大家在非常信任、常用的網(wǎng)站上可以開啟Cookie,而對偶爾訪問,不需要自動登錄、推薦頁面的網(wǎng)站,還是不開啟的好。此外在瀏覽器端是否開啟Cookie支持,特別是第三方Cookie更是要謹(jǐn)慎(圖5、圖6)。
最后還必須提醒大家一下,不使用Chrome瀏覽器的小伙伴,常用的也很可能是基于其核心“Chromium”的產(chǎn)品,比女口新版Edge、QQ瀏覽器等,很可能會同步棄用Cookie。未來Cookie失效后,存儲的自動填充內(nèi)容很可能會消失,所以我們現(xiàn)在就得勤勞一些了,要記錄和備份常用的網(wǎng)站用戶名密碼等數(shù)據(jù),別等到網(wǎng)站取消Cookie之后手足無措了。