超載
其實從Cookie(曲奇)的名字就可以猜到,這肯定是個讓用戶能嘗到“甜頭”的功能,沒錯,它的主要能力就是保留上網痕跡,輔助網絡瀏覽,比如將常看的型號調整到更靠前的位置,自動填寫頁面中常用的用戶名和密碼等,讓大家上網更方便(圖2)。
具體來說,首先瀏覽器和網站服務器之間是通過HTTP協議來進行通訊的,而這樣的協議是一種無狀態的協議,簡言之當我們操作某些功能時,比如搜索功能,網站服務器端就會接收到我們在瀏覽器上輸入的搜索內容需求,并作出相對應的響應,完成響應之后就會結束與該用戶的連接。但是,HTTP協議僅僅是“通道”,它無法負責記錄瀏覽器和服務器端溝通的內容,這就需要一個“記事本”來記錄,這便是Cookie。
通常,Cookie保存在客戶端中,按照客戶端中的存儲位置,Cookie又分為內存保存和硬盤保存兩種。保存在內存的Cookie,會隨著客戶端(如瀏覽器的隱身模式)關閉而清除,存在時間短暫;而保存在硬盤中的Cookie,則除非用戶手動清理或者到了過期時間,否則Cookie會保存較長時間。
Cookie固然方便使用,但是它也有致命的缺陷。第一,Cookie會被附加在每個HTTP協議請求中,所以無形中增加了流量消耗;第二,由于在HTTP協議請求中的Cookie是明文傳遞的,所以安全性成問題,除非使用超文本傳輸安全協定;第三,Cookie的大小限制在4KB左右,對于復雜的存儲需求來說是不夠用的。


雖然Cookies沒有中電腦病毒那么危險,但它仍包含了一些敏感消息:用戶名、電腦名、使用的瀏覽器和曾經訪問的網站。而且隨著技術手段的發展,和商業需求的應用,例如Cookie數據并不會限定在一個網站內,有些網站的Cookie數據會主動或被動地流傳出去,你訪問了某個顯卡官網,回頭就發現電商網站的首頁甚至是跳窗廣告給你推薦顯卡,這很可能就是Cookie的鍋。在如今隱私非常受重視的今天,這顯然是讓人反感的行為(圖3)。
此外,Cookie本身也不是很安全,別忘了它還包含你在網頁上輸入的內容,特別是用戶名和密碼。這些Cookie數據如果也流傳到網站之外,危險性就極高了;此外有些Cookie數據還會存在本地,但加密措施不好,一旦電腦中了木馬或病毒,也會直接泄露用戶名密碼(圖4)。
由于Cookie的危害已經被大家認識,所以很多瀏覽器默認是不支持的,有些網站如果希望大家開啟也會有明顯的提示。筆者建議,大家在非常信任、常用的網站上可以開啟Cookie,而對偶爾訪問,不需要自動登錄、推薦頁面的網站,還是不開啟的好。此外在瀏覽器端是否開啟Cookie支持,特別是第三方Cookie更是要謹慎(圖5、圖6)。
最后還必須提醒大家一下,不使用Chrome瀏覽器的小伙伴,常用的也很可能是基于其核心“Chromium”的產品,比女口新版Edge、QQ瀏覽器等,很可能會同步棄用Cookie。未來Cookie失效后,存儲的自動填充內容很可能會消失,所以我們現在就得勤勞一些了,要記錄和備份常用的網站用戶名密碼等數據,別等到網站取消Cookie之后手足無措了。