在HTML5迅速崛起的同時,我們也不得不認識到HTML5給我們帶來的安全問題,而且是不容小覷的安全問題。本文主要從劫持、跨域請求、桌面通知、地理定位、表單篡改這幾個方面來分析了HTML5中不容忽視的幾個安全“漏洞”,開發者要時刻警惕。
“雖然,HTML5對加強網站互動性的新功能有著一定的作用和貢獻,但是對于不懷好意者,HTML5的“漏洞”更容易成為他們的攻擊目標。”
因此,本文會從五個方面介紹HTML5易被攻擊的方向,希望廣大應用開發者能夠在使用HTML5的同時注意這些“漏洞”并加以防范。
1、點擊劫持變的更加容易:點擊劫持本身不是種新的攻擊,這種攻擊的目的是竊取受害者的鼠標按鈕點擊,然后將點擊定向到攻擊者所指定的其他頁面。攻擊者的目的是讓用戶在不知情的情況下點擊隱藏的鏈接。目前,對于點擊劫持最好的服務器端防御措施之一是被稱為Framekilling的技術。本質上來說,受到影響的網站可以利用JavaScript來驗證自己是否在一個iframe中運行,如果是的話,就拒絕顯示頁面內容。這種技術已經被在用在Facebook、Gmail和其他一些網站中。但是HTML5在iframe中增加了一個新的沙盒屬性,該屬性會讓網站停止執行JavaScript腳本。在大多數情況 下,這其實是比較安全的做法,但也存在缺點,就是會抵消目前對點擊劫持最好的防御措施。
2、利用跨域請求或WebSockets的端口掃描:有了HTML5,瀏覽器現在可以連到任何IP地址或網站的(幾乎)任何端口。雖然除非目標網站有特別的允許,不然并不能接收到來自任意端口連接的回應,但是研究人員表示,這類請求所花的時間可以用來判斷目標端口是打開的還是關閉的。因此攻擊者就可以直接利用瀏覽器對受害者的內部網絡進行端口掃描。
3、利用桌面通知做社會工程學攻擊:HTML5有一個新功能——桌面通知。這些出現在瀏覽器之外的彈出窗口,其實是可以用HTML程序代碼進行定制的。雖然這種功能帶來了很不錯的交互方式,但也可能導致社會工程學攻擊,例如網絡釣魚或者假冒殺毒軟件等。
4、利用地理定位追蹤受害者:地理定位是HTML5新功能中最受注目的一個。因為安全和隱私的考慮,網站必須先得到用戶的批準,隨后才能獲得位置訊息。然而就和以前出現過的其他功能一樣,例如Vista的用戶帳戶控制,Android的應用程序權限,還有無效的HTTPS憑證等,這些需要用戶作決定的安全措施幾乎沒有任何效果。而一旦有了授權,網站不僅可以知道受害者的位置,而且還可以在用戶移動時對其進行實時追蹤。
5、表單篡改:另一個新功能讓攻擊者可以在被注入JavaScript的網站(例如XSS攻擊)中更改該網頁上的表單行為。舉例來說,攻擊者可以改變一個網絡商店的正常行為,不是將內容送到購買或是登錄頁面,而是將用戶的身分認證信息發送到攻擊者自己的網站。
以上5點HTML5漏洞對于開發者來說是比較致命的,所以我們在開發HTML5程序時要非常小心。盡管HTML5有這些安全問題,但我堅信HTML5依然是web的未來