? ? ? 在今天的2012中國軟件開發者大會上,我做了名為《關注HTML5安全》的主題演講。我個人認為,隨著HTML5的普及和發展,HTML5的安全會成為近期帶來的嚴重問題。之所以大家還沒有感受到的原因是什么?1、目前HTML5應用還不普及 2、暫時還沒有吸引攻擊者的關注。
? ? ? 演講摘要如下(來自[CSDN專題](http://www.csdn.net/article/2012-09-11/2809819)):
? ? ? -----------
? ? ??我首先介紹了從HTML到HTML5的發展,在在91年當時誕生了HTML,當時只是一個簡單的純文本,并不存在安全方面的風險。而到了96年我們有了CSS和JS,由此誕生了XSS,也就是眾所周知的就是跨腳本攻擊,由此帶來了安全問題。到2000年的時候就有了HTML1,安全問題開始受到更多的關注,同時也有針對瀏覽器方面的攻擊。到了05年的時候Web的安全變得更加多樣化,到08年HTML5出現之后,Web安全問題又有了新的變化。

? ? ??我曾經在《程序員》發表過一篇文章叫做HTML之美,當時提到了HTML是一個很美好的標準,我把HTML比喻成一朵玫瑰,因為它其實跟HTML5一樣,玫瑰也具有很美好的特點,比如說它很漂亮,同時它有非常香的氣味,但是它同時有一個非常不好的方面,就是會有尖銳的刺,我們就是要在享受它美好一面的同時,還要忍受它帶來不好的一面。因為web需要不斷地往前發展。雖然HTML5解決一些舊的風險,不過隨著帶來新的特性,也會幫助攻擊者去引入新的攻擊的方式。
? ? ??我介紹了HTML5的四層架構,第一層是表現層,第二層是邏輯層,第三層是網絡層,第四層是核心層面,在表現層面有可能遇到的API的攻擊和新標簽的攻擊,在插件會引入CORJacking,在第三層會有Web Worker攻擊,Web Storage攻擊,在第四層有ClickJacking、CookieJacking。之所以大家還感覺不是特別明顯,因為第一目前HTML5的應用不是特別普及,目前攻擊者還沒有注意到這個,下面我詳細講訴了這些安全性的風險。
? ? ??接下來我講到了HTML5安全規范問題,其實針對以上講的問題,我認為HTML5是應該有一個關于安全方面的規范,進而規定開發者應該怎樣更安全地、更好地去開發應用,還有規定瀏覽器廠商如何更好更安全地去開發瀏覽器。但是這個規定目前還沒有,因為正在討論中。有的人希望它獨立成為一個章節,也有人希望它分散到各章。我認為規章終究會出現,會作為一個獨立的形式出現在HTML5規范里,同時在每一章里的具體細節也會有所體現。
? ? ??在演講中,我也闡述了HTML5帶來的機會,在HTML4時代有Antisamy,HTML purifier,目前HTML5在這一塊是一個空白,空白代表著一片藍海,針對這一片未來有可能形成一個新的產業,或者說會帶來新的機會。就像國外現在有一家公司正在做一件事情,面對基于Web的攻擊目前的防火墻很難進行禁止和防御,這家公司提供的新式防火墻,針對內容進行深入檢查,會對數據內容,格式,以及意圖,來分析哪些東西是安全的。我相信在國內隨著HTML5的發展,針對HTML5的安全也會帶來一些新的機遇。
?? ??演講的最后,我分析了HTML5的未來,我認為HTML5的安全問題會在三個層面被引入,第一個層面是安全規范的層面,而HTML5是一個發展非常快速的規范,同時社區非常透明,而且響應及時。社區里面有擁有互聯網最好的公司,比如說Facebook、谷歌以及微軟的支持,所以在規范上會盡快地修復掉這些漏洞。第二個層面是瀏覽器實現,雖然瀏覽器不斷地更新換代,會不斷地解決這些安全性問題或者是漏洞,同時所有瀏覽器廠商都正在積極面對HTML5安全問題。第三個也就是今天要講的目的,就是在應用實現層面提醒開發者注意HTML5安全問題,因為HTML5是未來安全發展的趨勢,不能因為HTML5有這樣的安全問題,就因噎廢食,可以預見的是,基于HTML5應用未來會出現一個爆發式增長的趨勢。所以現在就要了解這些問題,最后我建議開發者要仔細地去了解所要采用的特性,同時對應用安全性做一個評估。
? ? ? -----------
? ? ? 下面是分享的PPT資料。在線閱讀和下載地址在[**這里**](http://pan.baidu.com/share/link?shareid=25886&uk=2802317001)。
















- 前言
- AutoPager的簡單實現
- 利用CSS3特性巧妙實現漂亮的DIV箭頭
- IE9在Win7下任務欄新特性簡介
- 瀏覽器九宮格的簡單實現
- Raphael js庫簡介
- 使用CSS3構建Ajax加載動畫
- 用CSS3創建動畫價格表
- 用CSS3實現瀏覽器的縮放功能
- 用純CSS3實現QQ LOGO
- 用CSS3創建旋轉載入器
- 使用Javascript開發移動應用程序
- 用HTML5創建超酷圖像灰度漸變效果
- 使用CSS3創建文字顏色漸變(CSS3 Text Gradient)
- 僅用CSS創建立體旋轉幻燈片
- 如何創建跨瀏覽器的HTML5表單
- 用CSS3實現動畫進度條
- HTML5 Guitar Tab Player
- 奇妙的HTML5 Canvas動畫實例
- 談HTML5和CSS3的國際化支持
- 實現跨瀏覽器的HTML5占位符
- 前端開發必備工具:WhatFont Bookmarklet-方便的查詢網頁上的字體
- 使用HTML5和CSS3來創建幻燈片
- HTML5之美
- 如何使用HTML5創建在線精美簡歷
- 以小見大、由淺入深-談如何面試Javascript工程師
- 快速入門:HTML5強大的Details元素
- 用CSS3實現圖像風格
- HTML5視頻字幕與WebVTT
- 用純CSS3實現Path華麗動畫
- 用3個步驟實現響應式網頁設計
- 遇見CSS3濾鏡
- 關于CSS3濾鏡的碎念
- 用純CSS3繪制萌系漫畫人物動態頭像
- CSS3新的鼠標樣式介紹
- 用HTML5獻上愛的3D玫瑰
- 對HTML5 Device API相關規范的解惑
- 如何使用HTML5實現拍照上傳應用
- 2012第一季度國外HTML5移動開發趨勢
- HTML5新特性:范圍樣式
- 百度開發者大會-《用HTML5新特性開發移動App》PPT分享
- Chrome 19對于HTML5最新支持的動態:電池狀態API,全屏API,震動API,語音API
- 遇見Javascript類型數組(Typed Array)
- 用HTML5 Audio API開發游戲音樂
- 用HTML5實現人臉識別
- 用Javascript實現人臉美容
- Chrome 20對于HTML5最新支持的動態:顏色輸入,網絡信息API,CSS著色器
- 用HTML5實現手機搖一搖的功能
- 用HTML5實現iPad應用無限平滑滾動
- 用非響應式設計構建跨端Web App
- 了解SVG
- HTML5圖像適配介紹
- HTML5安全:內容安全策略(CSP)簡介
- HTML5安全:CORS(跨域資源共享)簡介
- 用CSS3 Region和3D變換實現書籍翻頁效果
- 談談移動App的思維誤區
- Chrome新特性:文件夾拖拽支持
- 《關注HTML5安全》
- HTML5安全風險詳析之一:CORS攻擊
- HTML5安全風險詳析之二:Web Storage攻擊
- HTML5圖像適配最新進展:響應式圖片規范草案
- HTML5移動Web App相關標準狀態及路線圖
- HTML5安全風險詳析之三:WebSQL攻擊
- Chrome引入WebRTC支持視頻聊天App
- HTML5安全風險詳析之四:Web Worker攻擊
- HTML5安全風險詳析之五:劫持攻擊
- HTML5安全風險詳析之六:API攻擊
- HTML5安全攻防詳析之七:新標簽攻擊
- 在iOS Safari中播放離線音頻
- 使用WebRTC實現遠程屏幕共享
- Firefox、Android、iOS遇見WebRTC
- HTML5光線傳感器簡介
- HTML5安全攻防詳析之八:Web Socket攻擊
- HTML5安全攻防詳析之完結篇:HTML5對安全的改進
- 激動人心!在網頁上通過語音輸入文字 - HTML5 Web Speech API介紹
- Web滾動性能優化實戰
- 用CSS3設計響應式導航菜單
- 用HTML5構建高性能視差網站
- 漫談@supports與CSS3條件規則
- HTML5下載屬性簡介
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(一)
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(二)
- 趨勢:Chrome為打包應用提供強大新特性
- 從HTML5移動應用現狀談發展趨勢
- 基于HTML5的Web跨設備超聲波通信方案