http referer造成的隱私洩漏

Author: 小光   Date: 2010/10/19 18:32:00   Read: http://blog.snow-sugar.net/read-953.html
前幾天米國的華爾街日報揭露,facebook會把使用者的個人資料透漏給多個廣告公司
Facebookアプリ、ユーザー情報をサードパーティー企業に露出--米報道
熱門遊戲偷洩個資給廣告商? Facebook認了稱開始要解決
狀況大概是,有調查發現,facebook的應用程式(包括人氣第一的農場遊戲(FarmVille))會把用戶的ID資料洩漏給外部廣告公司,被洩漏的資訊是每個facebook使用者單獨的"facebook ID",藉由這個ID,所有的人都能從瀏覽器找到該使用者的姓名,或所有設定開放讀取的個人資料
原因:

被點名的其中一家公司"Rapleaf"針對這個情況做了調查,表示洩漏用戶ID並非有意,而是瀏覽器本身傳送的http referer無意中透漏使用者情報
Facebookアプリのユーザー情報送信、その原因は
Referrer URLs and Privacy Risks
簡單的說,facebook在存取外部應用程式的時候,瀏覽器會把該使用者的來源網址傳給對方server,這就包含了上述提到的facebook個人ID...
這個狀況似乎有點眼熟?
年初的messe個人資料洩漏事件其實是類似的現象,都是因為http referer網址無意洩漏資料造成...當然messe那個是洩漏管理頁面的網址,甚至讓搜尋引擎給收錄,是更誇張的狀況
嚴密的管理網站的登入認證,轉送網址和外部連結其實是一個有規模的網站務必要做的
在facebook裡面張貼的外部連結,點選的時候會先經由一個轉送網頁才會進入目的的網址,這個就是防止來源網址(內含有使用者ID)經過http referer透漏給對方網站的方法,只是facebook只在塗鴉牆做了防止措施,卻沒注意到它網站裡面上千上萬的應用程式也有類似的問題
以facebook的狀況來說,因為是第三方的app,如果是cross site的內容可能會造成session和cookie無法動作,這時候互相認證的string應該要經過加密
例如 ?userkey=HASH 而不是 ?user=123 這樣子
而且在一定時間內失效,像是oAuth的機制(有誤請指正,因為我也沒實做過)
對於end user來說,選擇可以自行控制http referer的瀏覽器也是個不錯的自我防衛方法,目前firefox和chrome都有類似功能的套件可以用,opera則是內建開啟或關閉referer的功能