標籤彙整: NoScript

轉貼:對抗點擊劫持新武器:X-Frame-Options

原文網址:對抗點擊劫持新武器:X-Frame-Options

點擊劫持 (Clickjacking) 是一種誘使用戶點擊一個看似無害的超連結或按鈕,實際上卻是點擊在另一個網頁上的一個超連結或按鈕。後果可能是泄露了機密的資料,或無緣無故「讚好」一個網站,甚至開啓電腦內置的鏡頭和麥克風。網站開發人員當然有希望保護用戶不受攻擊,可用的手段主要有 Framekiller 和 X-Frame-Options,前者並不可靠,尤其在 IE 上可以輕易被攻擊者破解 (IE 的安全問題真是罄竹難書),後者只是瀏覽器自設的措施,並非業界標準。IETF 終於在兩個月前正式接受 X-Frame-Options 為 HTTP 的標頭 (header),從此開發人員的安全工具箱又多一件武器。

點擊劫持是什麼?

設想有一個用戶在網上討論區或 Facebook 見到一個「每天賺一萬塊錢的方法」超連結,懷著好奇點擊一下,來到一個惡意網站,頁面有一個「快速賺錢祕訣」的超連結,他心想入寶山怎能空手回?毫不考慮 便點擊下去,結果糊裡糊塗在自己的 Facebook 上「讚好」了一個商品的專頁,而他自己卻毫不知情。

原來那個惡意網站在「快速賺錢祕訣」超連結的前方,放置了一個透明的 iFrame,網址是「讚好」一個商品的 Facebook 專頁,iFrame 的位置經過小心安排,使裡面的 Facebook 按鈕剛好與「快速賺錢祕訣」超連結重疊,當用戶意圖點擊「快速賺錢祕訣」的時候,實際上點擊了 iFrame 中的 Facebook 按鈕,如果用戶的瀏覽器已經登入了 Facebook (十之八九用戶的瀏覽器都長期登入了 Facebook),這個「讚好」便會立即被執行。

X-Frame-Options 是什麼?

X-Frame-Options 是一個 HTTP 標頭 (header),用來告訴瀏覽器這個網頁是否可以放在 iFrame 內。例如:

X−Frame−Options: DENY
X−Frame−Options: SAMEORIGIN
X−Frame−Options: ALLOW−FROM http://www.facebook.com/

第一個例子告訴瀏覽器不要 (DENY) 把這個網頁放在 iFrame 內,通常的目的就是要幫助用戶對抗點擊劫持。第二個例子告訴瀏覽器只有當架設 iFrame 的網站與發出 X-Frame-Options 的網站相同,才能顯示發出 X-Frame-Options 網頁的內容。第三個例子告訴瀏覽器這個網頁只能放在 http://www.facebook.com/ 網頁架設的 iFrame 內。

不指定 X-Frame-Options 的網頁等同表示它可以放在任何 iFrame 內。

X-Frame-Options 可以保障你的網頁不會被放在惡意網站設定的 iFrame 內,令用戶成為點擊劫持的受害人,它剛在今年 10 月成為業界標準,IE8、Firefox、Safari、和 Chrome 都支援 X-Frame-Options。

用戶怎樣對抗點擊劫持?

除了依靠網站,用戶也可以防禦點擊劫持,包括:

  • 工作後立即登出網站。
  • 使用 Firefox 瀏覽器,並安裝 NoScript 附加元件,它的 ClearClick 功能防止 iFrame 內看不見 (包括透明或者被 CSS 隱藏起來) 的超連結、按鈕等被點擊。
  • 停用包括 Flash 在內的插件,Adobe 的 Flash 插件曾被發現能導致點擊劫持的安全漏洞

強化網上安全的 Firefox 附加元件

資料來源:強化網上安全的 Firefox 附加元件

注重網上安全和隱私的人大都是用開放源碼瀏覽器 Firefox,Ghacks.net 推薦了一些 Firefox 的附加元件 (add-on) 進一步提升上網的安全性和身份的隱密性,Firefox 的附加元件數量數以萬計,僅是「隱私及安全」類別便有超過一千個,當然素質有參差,若果感到茫無頭緒,不妨參考一下這份推薦名單。

封鎖類

  1. NoScript Extension
    它的任務是禁止 Firefox 從網站下載 JavaScript 程式。很多網站都依賴 JavaScript 制作界面,沒有 JavaScript 便無法進入這些網站,你可以把可信賴的網站加入 NoScript 的信任名單 (whitelist)。雖然開始的時候 NoScript 會帶來一些不便,但它確保你的電腦不會遭受任何透過 JavaScript 進行的攻擊 (例如恐怖而極之普遍的跨網站攻擊程式 (Cross Site Scripting, XSS)) 和泄漏個人隱私 (例如追蹤滑鼠游標活動的程式)。
  2. Adblock Plus
    它會封鎖網頁上的廣告、JavaScript、或任何你不想見到的東西,封鎖名單由來自世界各地的義工合力匯編,你也可以加入自己的封鎖對象,或者把某些封鎖對象解鎖。Adblock Plus 預設容許一些「可接受」的廣告,不過你可以關閉這項功能,這樣幾乎沒有廣告可以進入你的視線範圍。
  3. BluHell Firewall
    這是 Adblock Plus 以外的另一個選擇。
  4. Request Policy
    跨網站請求 (Cross Site Request) 一直是構成安全和隱私漏洞的元兇,Request Policy 讓你可以完全操控哪些網站可以發出跨網站請求,哪些可以作為跨網站請求的目標網站,甚至可以設定發出請求和請求目標兩者的配對。大部份注重安全和隱私的人都會同時使用 Request Policy 與 NoScript。

Cookie 類

  1. Cookie Controller
    它讓你制定每一個網站的 cookie 處理方法,透過簡單的操作,你可以禁止或容許 Firefox 儲存某個網站送來的 cookie,一次過清除某個網站的 cookie,清除所有 cookie,和設定例外名單等。
  2. CS Lite Mod
    它讓你透過工具列上的按鈕,輕鬆地設定每一個網站的 cookie 處理方法。
  3. Self-Destructing Cookies
    它自動替你刪除那些不再需要 cookie,例如當你關閉一個分頁的時候。很多網站包括 Amazon 會在瀏覽器內放置一些在登出後仍然有效的 cookie,值此追蹤你的上網活動和模式,廣告網站也是使用同樣的手法追蹤你的動向和生活習慣。這個附加元件容許你輸入例外名單,保存一些具真正用處、有價值的 cookie。

雜項

  1. Browser Protect
    保護 Firefox 的主頁、搜尋引擎等不會無緣無故被修改。
  2. Click to Play per Element
    一般來說你安裝了某一個 Firefox 插件 (plug-in) 後,頁面中所有這個插件的元素都會被啓動,例如安裝了一個播放錄像的插件,頁面中所有錄像都會同時播放,這個附加元件把控制權放回你的手上,只有你點選的元素才會被啓動。
  3. Disable Clipboard Manipulations
    它禁止網頁使用「複製」、「剪下」、「貼上」的功能,防止惡意網頁讀取電腦的剪貼簿,或者透過操控剪貼簿盜取資料。
  4. FEBE
    備份 Firefox 的數據。
  5. HTTPS Everywhere
    若果你正要探訪的網站有 HTTPS 版本,它替你自動導向到 HTTPS 網址。注意這個附加元件並非寄存在 Mozilla 網站。
  6. Long URL Please
    它揭露縮短 URL (Shortened URL) 的真正目的地。
  7. Perspectives
    它改進數碼證書的驗證機制。使用 HTTPS 通訊協定的網站都會發送一張數碼證書 (Digital Certificate) 到瀏覽器,瀏覽器檢驗證書的授權鏈,只要授權鏈最終聯繫到 600 多個瀏覽器「絕對信任」的終極核證機關 (Certificate Authority) 其中一個,便認為這張證書也是可信任的,可惜這個機制有可能受到「中間人攻擊」(Man-in-the-Middle Attack),受害人可能到訪一個偽冒網站,或者本應加密的通訊被這個「中間人」解密和竊取。這個附加元件改變驗證的機制,不再信任這 600 多個終極核證機關,改為信任一個分散式的數碼證書資料庫。
  8. Preferences Monitor
    監視 Firefox 一些不應改動的選項,當這些選項被改動時通知你。
  9. Secure Sanitizer
    它替你安全地刪除網頁的緩存檔案。

密碼管理

Firefox 內置的密碼管理員已經非常安全和容易使用,只要你設定了足夠複雜的主控密碼,你未必需要使用以下的附加元件。不過,若果你想增加一些功能,或者增進實用上的方便,也不妨考慮一下。

  1. KeeFox
    若果你使用桌面版本的 KeePass 密碼管理器,這個附加元件可以作為 KeePass 和 Firefox 之間的橋樑。
  2. LastPass Password Manager
    LastPass 是一個十分流行的網上密碼管理器,不過它也可以單獨在電腦上使用,它以功能豐富而著名。
  3. Master Password+
    它為 Firefox 內置的密碼管理器加入新功能,例如過了特定時限後自動上鎖等。
  4. Quick Passwords
    這個也是為 Firefox 內置的密碼管理器加入新功能,對於在同一個網站擁有多個帳號的人來說,這個附加元件特別有用。

網站資訊

  1. Hostname in Titlebar
    顧名思義,它把網站的名稱放在 Firefox 視窗的標題列。
  2. Host Permissions
    可以就個別網站設定是否啓用 JavaScript、某些插件等。
  3. HTTP Nowhere
    封鎖所有沒有加密的通訊。
  4. Modify Headers
    讓用戶新增、刪除、修改 HTTP 標頭。
  5. Show IP
    顯示當前網站的 IP 地址,還有地理位置、Whois 資訊等。
  6. Temper Data
    顯示及編輯 HTTP 和 HTTPS 標頭、表單資料等。
  7. View Dependencies
    在「頁面資訊」視窗中新增一個分頁,列出下載當前頁面時一起下載的檔案。
  8. Web of Trust
    一個由社群力量驅動的網站評審服務。
  9. WorldIP
    顯示 IP 地址相關的資訊,可用作防止偽冒 DNS、偽冒網站等。