利用 CSS 產生的隱私問題

Update:這個隱私問題在 2010 年就有被修正,請參考「關於 CSS 中 :visited 的隱私問題」的說明。

雖然很早前就知道 CSS link 可以這樣做,不過實做起來就真的感覺到很邪惡了,既然被 full disclosure,這陣子應該會引起更熱烈的討論:Guessing gender from browser history

首先請先參考 pesty 這篇「網路廣告商怎麼知道你是誰? 從 ClickStream 來判斷用戶資料」,裡面有提到利用 cookie 資訊去猜測目前這個 user 的性別。首先先知道這個使用者逛過哪些網站,然後再用統計方法算出來。

以往廣告商要判斷使用者逛過哪些網站,僅限於自己旗下的網站。舉例來說,很多網站有放 DoubleClick 的廣告,那麼 DoubleClick 就可以利用 IP 資訊、Cookie 資訊、User-Agent 之類的資訊來判斷哪些 request 是同一個使用者,所以 DoubleClick 就可以判斷出這個使用者有上過他旗下哪些網站。

但利用 CSS 隱私漏洞,如果想要知道某個使用者是不是上過某個特定 URL 是可行的。簡單的解釋是:插入一個 link,然後對這個 link 做 CSS 效果,對於瀏覽過的 link (也就是 a:visited) 使他顯示的顏色不同,然後再用 Javascript 去讀顏色,就可以得知使用者是否有上過這個網站。很邪惡,方法也已經有一陣子了 (像是 SocialHistory.js 這種工具),不過大家一直想不出好的解法,於是就一直爛下去...

這個 CSS hack 加上統計分析,可以分析出年齡範圍、性別、興趣,非常邪惡 -_-

4 thoughts on “利用 CSS 產生的隱私問題”

  1. Mike on Ads 改出的 script 還真仁慈。竟然捨必經的 login / common iframe 不顧﹐僅在 "/" 挖洞。

  2. 可是要剛好指到他去的網站,大概也只有首頁命中率㑹比較高?

    我覺得以茫茫網海之中,還是要先想辦法定義出路標才能知道危險性。@@

    不過是說就算這樣,乾脆把瀏覽器 visited 都關掉好像對現代人也還好。

Leave a Reply

Your email address will not be published. Required fields are marked *