AJAX安全技術(shù)

出版時間:2009-1  出版社:電子工業(yè)出版社  作者:霍夫曼  頁數(shù):403  
Tag標簽:無  

前言

  在AJAX的面前,火、車輪、電的意義都顯得淡然無光。從AJAX誕生的那一刻起,人們終于實現(xiàn)了夢寐以求的理想——在Web應(yīng)用程序中刷新局部頁面。相信那一天JamesGarrett站在浴室里時,一定是上帝給了他靈感才想到了這個詞——AJAX。  但是像毀滅阿茲特克(Aztecs)的西班牙殖民者科爾蒂斯(Cortés),或者像《星球大戰(zhàn)(StarWar)》前傳中,最初被認為是救世主、最終卻帶來毀滅的達斯●維達一樣,很多起初認為是美好的事物結(jié)局卻不一定很好。同樣,對于AJAX來說,其安全上的巨大漏洞已經(jīng)成為自身的最大威脅,如果任其發(fā)展,最終也會同前面的二者一樣,產(chǎn)生混亂并最終毀于一旦。在這巨大的恐懼面前,為了保護無辜的人們、戰(zhàn)勝邪惡并重新恢復宇宙中的和平,終于有兩個人站了出來,他們便是Billy和Bryan。  衷心感謝你閱讀這本書。

內(nèi)容概要

  一本防范AJAX安全漏洞的實用指南?! ∪缃瘢絹碓蕉嗟木W(wǎng)站都被改寫成AJAX應(yīng)用程序,甚至傳統(tǒng)的桌面軟件也通過AJAX,迅速轉(zhuǎn)向了Web領(lǐng)域。但是在這個過程中,人們通常都沒有考慮到安全的問題。如果不恰當?shù)卦O(shè)計、編寫了AJAX應(yīng)用程序,那么它們會比傳統(tǒng)桌面程序存在更多的安全漏洞。AJAX開發(fā)人員無時無刻都希望有一本指南,能夠指導他們?nèi)绾蝸肀Wo自己的應(yīng)用程序——他們終于等到了這一天?!  禔JAX安全技術(shù)》—書,系統(tǒng)地分析了當今最危險的AJAX漏洞用現(xiàn)實中的代碼闡述了大量關(guān)鍵性的安全理念,并對實際中的案例,例如MySpace的Samy蠕蟲病毒,進行了詳盡分析。更重要的是,不管你使用何種主流的Web編程語言和環(huán)境,例如  .NET、Java或PHP,本書都給出了許多具體、前沿的建議。通過本書你將了解到以下幾點:  如何剛氐A(chǔ)JAX特有的安全風險,包}舌過度細分的Web服務(wù)、應(yīng)用程序控制流程篡改以及對程序邏輯的操控?! ∪绾晤A(yù)防針對AJAX的攻擊手段,包括JavaScript劫持、持久化存儲竊取以及對mashup程序的滲透?! ∪绾伪苊饣赬SS和SQL注入的攻擊,包括由AJAX衍生出來的SQL注入攻擊(只需要兩次請求就可以暴露整個后臺數(shù)據(jù)庫)。  如何使用Google Gears和Doj0開發(fā)安全的離線AJAX應(yīng)用程序。  如何發(fā)現(xiàn)Prototype、DWR及ASRNET AJAX等AJAX框架中的安全問題以及我們自己仍需實現(xiàn)哪些功能?! ∪绾胃踩鼐帉慉JAX代碼,如何確定并修改已有代碼中的安全缺陷。  不管是編寫或者維護AJAX應(yīng)用程序的開發(fā)人員、架構(gòu)師,還是打算或正在設(shè)計新AJAX程序的項目經(jīng)理,以及包括QA和滲透測試人員在內(nèi)的所有軟件安全人士,(AJAX安全技術(shù)》—書都是必不可少的。

作者簡介

  Jesse James Garrett——Adaptive PATH公司主席及創(chuàng)始人。  Billy Hoffman是惠普安全實驗室的首席安全研究員,專注于如何自動發(fā)掘Web應(yīng)用程序中的漏洞。他經(jīng)常在Black Hat、RSA、Toorcon、Shmoocon、Infosec及AJAXWorld等會議上發(fā)表演講,也曾受到過FBI的邀請進行演講。

書籍目錄

第1章 AJAX安全介紹11.1 AJAX基礎(chǔ)知識21.1.1 什么是AJAX21.1.2 動態(tài)HTML(DHTML)101.2 AJAX架構(gòu)(Architecture)的轉(zhuǎn)變過程111.2.1 胖客戶端架構(gòu)111.2.2 瘦客戶端架構(gòu)121.2.3 AJAX:最適合的架構(gòu)141.2.4 從安全角度看胖客戶端應(yīng)用程序151.2.5 從安全角度看瘦客戶端應(yīng)用程序151.2.6 從安全角度看AJAX架構(gòu)171.3 一場完美的攻擊風暴171.3.1 不斷增加的復雜度、透明度及代碼量181.3.2 社會學問題201.3.3 AJAX應(yīng)用程序:富有吸引力的、戰(zhàn)略上的目標211.4 本章小結(jié)22第2章 劫持232.1 攻擊HighTechVactions.net242.1.1 攻擊票務(wù)系統(tǒng)242.1.2 攻擊客戶端數(shù)據(jù)綁定302.1.3 攻擊AJAXAPI342.2 黑夜中的盜竊39第3章 Web攻擊413.1 基本攻擊分類413.1.1 資源枚舉413.1.2 參數(shù)操縱453.2 其他攻擊663.2.1 跨站請求偽造攻擊663.2.2 釣魚攻擊683.2.3 拒絕服務(wù)(Denial-of-Service,DoS)683.3 保護Web應(yīng)用程序免受資源枚舉和參數(shù)操作的攻擊693.4 本章小結(jié)70第4章 AJAX攻擊層面714.1 什么是攻擊層面714.2 傳統(tǒng)Web應(yīng)用程序的攻擊層面724.2.1 表單輸入734.2.2 cookie744.2.3 報頭754.2.4 隱藏的表單輸入754.2.5 請求參數(shù)764.2.6 上傳文件784.3 傳統(tǒng)的Web應(yīng)用程序攻擊:一份成績單794.4 Web服務(wù)的攻擊層面814.4.1 Web服務(wù)的方法814.4.2 Web服務(wù)的定義824.5 AJAX應(yīng)用程序的攻擊層面834.5.1 AJAX應(yīng)用程序攻擊層面的來源844.5.2 黑客的最愛864.6 正確的輸入驗證864.6.1 有關(guān)黑名單及其他補丁的問題874.6.2 治標不治本904.6.3 白名單輸入驗證934.6.4 正則表達式964.6.5 關(guān)于輸入驗證的其他想法964.7 驗證富客戶端的用戶輸入984.7.1 驗證標記語言984.7.2 驗證二進制文件1004.7.3 驗證JavaScript源代碼1004.7.4 驗證序列化數(shù)據(jù)1064.8 關(guān)于由用戶提供的內(nèi)容1094.9 本章小結(jié)110第5章 AJAX代碼的復雜性1115.1 多種語言和架構(gòu)1115.1.1 數(shù)組索引1125.1.2 字符串操作1135.1.3 代碼注釋1155.1.4 事不關(guān)己,高高掛起1155.2 JavaScript的怪異之處1175.2.1 解釋,而不是編譯1175.2.2 弱類型1185.3 異步性1205.3.1 競爭條件1205.3.2 死鎖及哲學家用餐問題1245.3.3 客戶端同步化1275.3.4 留意你所采納的建議1285.4 本章小結(jié)129第6章 AJAX應(yīng)用程序的透明度1316.1 黑盒對白盒1316.1.1 示例:mylocalweatherforecast.com1336.1.2 示例:用AJAX實現(xiàn)的mylocalweatherforecast.com1356.1.3 對比結(jié)果1396.2 像API一樣的Web應(yīng)用程序1406.3 一些特殊的安全錯誤1416.3.1 不恰當?shù)纳矸菡J證1416.3.2 過度細化服務(wù)端API1436.3.3 在JavaScript中存儲會話狀態(tài)1466.3.4 與用戶相關(guān)的敏感數(shù)據(jù)1476.3.5 包含在客戶端的注釋及文檔1486.3.6 在客戶端進行的數(shù)據(jù)轉(zhuǎn)換1496.4 通過隱藏來保證安全1526.5 本章小結(jié)154第7章 劫持AJAX應(yīng)用程序1557.1 劫持AJAX框架1557.1.1 意外的方法沖突1567.1.2 人為的方法沖突1587.2 劫持“即時”的AJAX1637.3 劫持JSONAPI1677.3.1 劫持對象定義1727.3.2 JSON劫持的根源1737.3.3 如何防范JSON劫持1737.4 本章小結(jié)176第8章 攻擊客戶端存儲1798.1 客戶端存儲系統(tǒng)概述1798.2 HTTPcookies1818.2.1 cookie訪問控制規(guī)則1838.2.2 HTTPcookie的存儲能力1888.2.3 cookie的生命期1918.2.4 cookie存儲的其他安全問題1928.2.5 cookie存儲總結(jié)1938.3 Flash本地共享對象1948.4 DOM存儲2018.4.1 會話存儲2028.4.2 全局存儲2048.4.3 DOM存儲的細節(jié)討論2058.4.4 DOM存儲安全2078.4.5 DOM存儲總結(jié)2088.5 InternetExploreruserData2098.6 一般客戶端存儲的攻擊和防范方法2148.6.1 跨域攻擊2148.6.2 跨目錄攻擊2158.6.3 跨端口攻擊2168.7 本章小結(jié)216第9章 離線AJAX應(yīng)用程序2199.1 離線AJAX應(yīng)用程序2199.2 GoogleGears2209.2.1 GoogleGears內(nèi)置的安全特性及其缺點2219.2.2 探索工作者池2249.2.3 泄露并篡改本地服務(wù)器(LocalServer)中的數(shù)據(jù)2269.2.4 直接訪問GoogleGears數(shù)據(jù)庫2299.2.5 SQL注入和GoogleGears2309.2.6 客戶端SQL注入有多危險2349.3 Dojo.Offline2369.3.1 保證密鑰安全2379.3.2 保證數(shù)據(jù)安全2389.3.3 可作為密鑰的良好密碼2399.4 再論客戶端輸入驗證2409.5 創(chuàng)建離線應(yīng)用程序的其他方式2419.6 本章小結(jié)242第10章 請求來源問題24310.1 Robots、Spiders、Browsers及其他網(wǎng)絡(luò)爬蟲24310.2 請求來源不確定性和JavaScript24510.2.1 從Web服務(wù)器的角度看AJAX請求24610.2.2 是你自己,還是貌似你的某人24910.2.3 使用JavaScript發(fā)送HTTP請求25110.2.4 在AJAX出現(xiàn)之前的JavaScriptHTTP攻擊25210.2.5 通過XMLHttpRequest竊取其他內(nèi)容25410.2.6 實戰(zhàn)結(jié)合XSS/XHR進行攻擊25810.3 防范措施26010.4 本章小結(jié)261第11章 WebMashup和聚合程序26311.1 互聯(lián)網(wǎng)上計算機可以使用的數(shù)據(jù)26311.1.1 20世紀90年代早期:人類Web的黎明26311.1.2 20世紀90年代中期:機器Web的誕生26411.1.3 2000年左右:機器Web逐漸成熟26611.1.4 可公用的Web服務(wù)26611.2 Mashup:Web中的弗蘭肯斯坦26811.2.1 ChicagoCrime.org26911.2.2 HousingMaps.com27011.2.3 其他的Mashup應(yīng)用程序27011.3 創(chuàng)建Mashup應(yīng)用程序27111.4 橋接、代理及網(wǎng)關(guān)27411.5 攻擊AJAX代理27511.6 Mashup程序中的輸入驗證27911.7 聚合網(wǎng)站28211.8 安全性和可信度的降低28711.9 本章小結(jié)290第12章 攻擊表現(xiàn)層29112.1 從內(nèi)容信息中分離表現(xiàn)信息29112.2 攻擊表現(xiàn)層29412.3 對級聯(lián)樣式表的數(shù)據(jù)挖掘29512.4 外觀篡改29712.5 嵌入程序邏輯30512.6 目標級聯(lián)樣式表30612.7 防范表現(xiàn)層攻擊31112.8 本章小結(jié)312第13章 JavaScript蠕蟲31313.1 JavaScript蠕蟲概述31313.1.1 傳統(tǒng)的計算機病毒31413.1.2 JavaScript蠕蟲31613.2 創(chuàng)建JavaScript蠕蟲31813.2.1 JavaScript的局限性31913.2.2 傳播JavaScript蠕蟲32013.2.3 JavaScript蠕蟲攜帶的惡意代碼32013.2.4 JavaScript中的信息竊取32113.3 關(guān)于內(nèi)網(wǎng)32213.3.1 竊取瀏覽器歷史記錄32613.3.2 竊取搜索引擎的查詢結(jié)果32713.3.3 總結(jié)32813.4 案例學習:Samy蠕蟲32913.4.1 工作原理33013.4.2 病毒攜帶的程序33313.4.3 關(guān)于Samy蠕蟲的結(jié)論33413.5 案例學習:Yamanner蠕蟲(JS/Yamanner-A)33613.5.1 工作原理33713.5.2 病毒攜帶的程序33913.5.3 關(guān)于Yamanner蠕蟲的結(jié)論34013.6 從實際JavaScript蠕蟲中能學到的經(jīng)驗34213.7 本章小結(jié)343第14章 測試AJAX應(yīng)用程序34514.1 黑魔法34514.2 并不是所有人都使用瀏覽器來查看網(wǎng)頁34914.3 兩手都要抓,兩手都要硬35114.4 安全測試工具35214.4.1 生成網(wǎng)站目錄35314.4.2 漏洞檢測35414.4.3 分析工具:Sprajax35614.4.4 分析工具:ParosProxy35714.4.5 分析工具:LAPSE(Eclipse中輕量級的程序安全分析工具)35914.4.6 分析工具:WebInspectTM36014.5 其他一些關(guān)于安全測試的想法361第15章 AJAX框架分析36315.1 ASP.NET36315.1.1 ASP.NETAJAX(以前被稱為Atlas)36315.1.2 ScriptService36715.1.3 安全缺點:UpdatePanel對ScriptService36815.1.4 ASP.NET和WSDL36915.1.5 ValidateRequest37315.1.6 ViewStateUserKey37415.1.7 ASP.NET配置和調(diào)試37515.2 PHP37615.2.1 Sajax37615.2.2 Sajax和跨站請求偽造37815.3 JavaEE38015.4 JavaScript框架38215.4.1 對客戶端代碼的一個警告38315.4.2 Prototype38315.5 本章小結(jié)385附錄A Samy蠕蟲源代碼387附錄B Yamanner蠕蟲源代碼397

章節(jié)摘錄

  第1章 AJAX安全介紹  1.1 AJAx基礎(chǔ)知識  1.1.1 什么是AJAX  通常來說,瀏覽器為了動態(tài)顯示W(wǎng)eb頁面,會把整個頁面通過一個請求發(fā)送給服務(wù)器。服務(wù)端應(yīng)用程序接收到響應(yīng)后,會創(chuàng)建該頁面的HTML代碼,并返回給瀏覽器。瀏覽器會丟棄掉當前的頁面,并顯示新的HTML頁面。這樣,用戶才能夠在瀏覽器中看見新的頁面,并與其進行交互。  雖然這個過程十分簡單,但是卻非常浪費資源。通常,服務(wù)端為客戶端生成的新頁面幾乎與被其丟棄的當前頁面一樣。在網(wǎng)絡(luò)中傳輸?shù)恼麄€頁面占據(jù)了大量的帶寬,而這根本就是毫無必要的。同時,在請求處理的過程中,用戶也無法再使用應(yīng)用程序,他們不得不等著服務(wù)端返回響應(yīng)信息。當服務(wù)端最終將響應(yīng)信息返回給瀏覽器時,瀏覽器在重新加載頁面的同時,還不得不閃爍一下?! ∪绻鸚eb客戶端只需要請求頁面中的一小部分,而不是向服務(wù)端發(fā)送整個頁面的請求,那么對各個方面都會帶來益處。服務(wù)端可以更快速地處理請求,并且發(fā)送響應(yīng)信息時會占用更少的帶寬。同時,客戶端由于請求的整體時間變短,不僅可以為用戶提供交互性更好的界面,也可以消除由重新加載整個頁面而導致的閃爍?! ?yīng)該說,AJAx是為了解決該問題而產(chǎn)生的眾多技術(shù)的融合,它使得Web應(yīng)用程序的客戶端可以不斷地從Web服務(wù)端更新部分頁面。而用戶也不必再提交表單,或者離開當前的頁面??蛻舳说哪_本代碼(通常都是JavaScript)可以向頁面的部分片段(Fragment)發(fā)起異步的,或者非阻塞(Non-blocking)的請求。這些片段可以是一些原始的數(shù)據(jù),在客戶端再被轉(zhuǎn)換成HTML代碼;也可以本身就是HTML代碼,直接被插入到瀏覽器的文檔(Document)對象中。不管怎樣,在服務(wù)端完成對請求的處理,并將響應(yīng)片段返回給客戶端瀏覽器之后,客戶端的腳本代碼都會使用這些數(shù)據(jù)來修改頁面中的文檔對象模型(Document Object Model,DOM)。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    AJAX安全技術(shù) PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7