歡迎光臨
每天分享高質量文章

不用Cookie的“Cookie”技術

有另外一種比較隱蔽的使用者追蹤技術,不使用cookie或者Javascript。很多網站已經在用了,但知道的人不多。本文就來介紹一下這種技術是如何追蹤使用者,使用者又該如何避免追蹤。

這種技術不依賴於:

  • Cookies
  • Javascript
  • LocalStorage/SessionStorage/GlobalStorage
  • Flash, Java或外掛
  • 你的IP地址或者User Agent頭
  • Panopticlick

相反,它使用另外一種儲存方式,而這種儲存即使瀏覽器關閉仍然能夠存在,那就是瀏覽器快取。 即使你完全禁用了cookie和Javascript,甚至使用VPN服務,這種技術仍然能夠跟蹤到你。

示例

到這個連結(http://lucb1e.com/rp/cookielesscookies/ )上提交一些資料,然後關閉瀏覽器,然後再開啟,看看資料是不是仍然在那裡?

看一下你的Cookie裡面的有沒有東西?沒有的吧,這些都在我們幾乎沒有察覺到的一個假的圖片校驗。看一下上面那個眼睛,哈哈,那是我們的追蹤者。

它如何工作?

下圖是一個大致描述

影象中的ETag是一種影象校驗方式,當影象發生變化的時候,ETag也會隨之發生變化。因此,瀏覽器會拿著圖片和ETag去伺服器進行校驗,讓伺服器來應答這張圖片是否發生改變,如果沒有的話,這張圖片就直接從瀏覽器快取中命中傳回,無需再去伺服器重新拉取圖片了。

細心的讀者可能已經大概知道這個是如何可以實現追蹤的:瀏覽器把之前的ETag發回到伺服器就OK了。不過,透過這個ETag貌似能產生好多好多Cookie,不是嗎?於是,伺服器可以給每個瀏覽器一個唯一的ETag,再次收到這個ETag的時候,就能知道是你了。

Demo中的一些技術細節和缺陷

Demo為了能夠不借助於Javascript,我不得不找出一些資訊對你來說是唯一的,除了那個ETag。圖片是在頁面載入後載入的,不過只有圖片裡面有ETag。我是如何將時間資訊顯示出來呢? 我確實做不用Javascript動態更新資料,而這Demo就是要證明不用依賴Javascript。

一些小bug:

  • 所有你看到的資訊都是上一次的。需要按F5才能刷出最新的。
  • 當你訪問頁面的時候不攜帶ETag (比如隱身樣式),會話就會被清空。 或者說,你掃清頁面的時候,資料就會消失。

我沒有看到這種技術的比較簡單的解決方案。當然有些東西可以做一下,可能其他網站不會用,不過我就是想讓程式碼簡單實用就行。

請註意,當你確實想去追蹤某個人,你又不打算告訴使用者他們正在被追蹤,你這些bug是不存在的!

原始碼

哪個程式沒有原始碼? 噢,好像是微軟的Windows。

https://github.com/lucb1e/cookielesscookies

如何避免追蹤?

如果你想更安全一些, 我強烈建議你開啟隱身樣式,使用HTTPS。只要這樣開一下,就能防止BREACH (最新的https攻擊),禁止了cookie跟蹤,也消除本文講到的快取跟蹤的問題。用網銀的時候,我會使用隱身樣式。在Firefox(IE應該也是)按Ctrl + Shift + P,在Chrome中按Ctrl + Shift + N。

除此之外,要看你對於隱私安全的潔癖程度了。

目前,我沒有簡單完美的辦法,因為快取跟蹤幾乎是無法察覺的,但同時快取本身很有用,能夠節省時間和金錢。網站將消耗更少的頻寬(你仔細想想,到底是誰會為這些流量買單),你的網頁載入速度更快,尤其是在移動裝置上,將會有很大的區別,如果你沒有一個無限流量的套餐的話,如果你在網速很慢的地方,快取的效果就更加明顯了。

聽了這些,如果你還是不放心,那麼完全禁用快取吧。沒有了儲存性狀態或者資訊,任何追蹤都不會發生,就是每次都要重新載入,速度會慢一些,並且我個人並不認為值得這樣做。

Firefox的外掛Self-Destructing Cookies有這樣的功能:當你一段時間不使用瀏覽器,它就會清空你的快取。這個外掛的定期清空快取可能是一個不錯的選擇,只有在訪問會話期間會被追蹤,不過反正他們也能夠記錄下哪個IP訪問了哪個頁面,所以這是沒有什麼大不了的。不過之後的訪問由於快取被清空(假設跟蹤是基於快取),看起來都是一個新的使用者,追蹤將無法繼續。

我不知道任何其他能夠定期清除快取的外掛(例如,每72小時一次),但應該是有的。這將是一個很好的方法,這對於99%的使用者都是有用的,因為這個並不會使效能下降太大,同時還限制了追蹤。

更新:我聽說Firefox的外掛SecretAgent也有ETag的改寫,以防止這種型別的追蹤。你可以對於有些站點設定白名單重置快取,以達到防止追蹤的目的。這個已經確認能夠防止追蹤。SecretAgent 的網站。

原文出處:lucb1e

譯文出處:伯樂線上 – 囧思八千

連結:http://blog.jobbole.com/46266/


贊(0)

分享創造快樂