HTML5核心安全問題有哪些?web前端開發人員必備知識
應用程序安全專家表示,HTML5給開發人員帶來了新的安全挑戰。蘋果公司與Adobe公司之間的口水戰帶來對HTML 5命運的諸多猜測,儘管HTML 5的實現還有很長的路要走,但可以肯定的一點是,運用HTML 5的開發人員將需要為應用程序安全開發生命周期部署新的安全功能以應對HTML5帶來的安全挑戰。
客戶端存儲
早期版本的HTML僅允許網站將cookies作為本地信息存儲,而這些空間相對較小,僅適用於存儲簡單的檔案信息或者作為存儲在其他位置的數 據(例如會話ID)的標識符,Denim集團應用程序安全研究部門的主管Dan Cornell表示。然而,HTML5 LocalStorage則允許瀏覽器本地存儲大量據庫,允許使用新類型應用程序。
「隨之而來的風險就是,敏感數據可能被存儲在本地用戶工作站,而物理訪問或者破壞該工作站的攻擊者,就能夠輕鬆獲得敏感數據,」Cornell 表示,「這對於使用共享計算機的用戶更加危險。」
「從定義上來說,它真的只是能夠在客戶端系統存儲信息,」Rapid7公司的安全研究人員Josh Abraham表示,「那麼你就具備基於客戶端SQL注入攻擊的潛在能力,或者可能你的某個客戶端的資料庫是惡意的,當與生產系統同步時,則可能出現同步 問題,或者客戶端的潛在惡意數據將被插入到生產系統。」為了解決這個問題,開發人員需要能夠驗證數據是否為惡意的,這其實是個很複雜的問題。
對於這個問題的重要性並不是所有人都贊同。Veracode公司首席技術官Chris Wysopal表示,例如web應用程序通過使用插件或者瀏覽器擴展存儲數據客戶端就一直存在很多方法。
「有很多已知的方法可以操控目前部署的HTML5 SessionStorage屬性,但是標準最終確定時,這個問題才會解決,」Wysopal表示。
跨域通信
而其他版本的HTML可能直允許JavaScript發出XML HTTP請求調用回原來的伺服器,而HTML5放寬了這個限制,XML HTTP請求可以發送給任何允許這種請求的伺服器。當然,如果伺服器不可信任的話,這也會帶來嚴重安全問題。
「例如,我可以建立一個mashup(糅合,將兩種以上使用公共或者私有資料庫的web應用合併形成一個整合應用)通過 JSON(Javascript Object Notation)將第三方網站的比賽比分拉過來,」Cornell表示,「這個網站可能會發送惡意數據到我的用戶瀏覽器正在運行的應用程序上。雖說 HTML5允許新類型的應用程序的建立,但如果開發人員在開始使用這些功能時,並不理解他們所建立的應用程序的安全意義,那麼將會給用戶帶來很大安全風 險。」
對於依賴於PostMessage()來編寫應用程序的開發人員而言,必須仔細檢查以確保信息是來源於他們自己的網站,否則來自其他網站的惡意 代碼可能會製造惡意信息,Wysopal補充說。這個功能本身並不是安全的,開發人員已經開始使用不同的DOM(文檔對象模型)/瀏覽器功能來效仿跨域通 訊。
另一個相關問題是,萬維網聯盟目前為跨源資源共享設計提供了一種使用類似與跨域機制繞過同源政策的方法。
「IE部署的安全功能與Firefox、Chrome以及Safari都不相同,」他指出,「開發人員需要確保他們創建過於寬鬆訪問控制列表的 危害,特別是因為某些參考代碼目前非常不安全。
Iframe安全
從安全形度來看,HTML5也有不錯的功能,例如計劃支持iframe的沙盒屬性。
「這個屬性將允許開發者選擇數據如何解譯的方式,」Wysopal表示,「不幸的是,與大部分HTML一樣,這個設計很可能被開發人員誤解,很 可能因為不便於使用而被開發人員禁用。如果處理得當,這個功能將能夠幫助抵禦惡意第三方廣告或者防止不可信任內容重放。」
TAG:千鋒長沙 |