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