利用 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 加上統計分析,可以分析出年齡範圍、性別、興趣,非常邪惡 -_-

This entry was posted in Browser, Computer, Murmuring, Network, Security, Social, Software, WWW. Bookmark the permalink.

4 Responses to 利用 CSS 產生的隱私問題

  1. lxb says:

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

  2. Kuon says:

    有阿, 有好解法, Stanford SafeCache, SafeHistory 利用 SSH-like 的信任模型去檢查 Referer.

  3. TonyQ says:

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

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

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

  4. Pingback: 關於 CSS 中 :visited 的隱私問題 | Gea-Suan Lin's BLOG

Leave a Reply

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