版權資訊
書 名: AJAX安全技術
作 者:(美國)(BillyHoffmanBryanSullivan)霍夫曼
出版社: 電子工業出版社
出版時間: 2009
ISBN: 9787121079306
開本: 16
定價: 55.00 元
內容簡介
眾所周知,Ajax具備變革網際網路的潛力,但危險的新安全威脅同樣隨之而來。《AJAX安全技術》揭示Ajax框架與生俱來的安全弱點密集區域,為開發人員創造安全套用提供指導。每一章由一個Ajax安全謬誤開始,隨後即將其揭穿。通讀《AJAX安全技術》你將看到很多用於闡述關鍵知識點的真實Ajax安全漏洞案例。在書中還講到保護Ajax套用的特殊方法,包括每種主要Web程式語言(.NET、Java和PHP)及流行新語言RubyonRails。
《AJAX安全技術》一書對AJAX安全這一未開發領域進行了非常嚴謹、徹底的探討。每個AJAX工程師都應該去掌握《AJAX安全技術》中的知識——至少應該明白其中的原理。
《AJAX安全技術》適合廣大基於AJAX開發Web程式的開發人員參考學習,同時也可作為高等院校相關專業師生的參考用書。
作者簡介
JesseJamesGarrett——AdaptivePATH公司主席及創始人。
BillyHoffman是惠普安全實驗室的首席安全研究員,專注於如何自動發掘Web應用程式中的漏洞。他經常在BlackHat、RSA、Toorcon、Shmoocon、Infosec及AJAXWorld等會議上發表演講,也曾受到過FBI的邀請進行演講。
編輯推薦
一本防範AJAX安全漏洞的實用指南。
如今,越來越多的網站都被改寫成AJAX應用程式,甚至傳統的桌面軟體也通過AJAX,迅速轉向了Web領域。但是在這個過程中,人們通常都沒有考慮到安全的問題。如果不恰當地設計、編寫了AJAX應用程式,那么它們會比傳統桌面程式存在更多的安全漏洞。AJAX開發人員無時無刻都希望有一本指南,能夠指導他們如何來保護自己的應用程式——他們終於等到了這一天。
《AJAX安全技術》-書,系統地分析了當今最危險的AJAX漏洞用現實中的代碼闡述了大量關鍵性的安全理念,並對實際中的案例,例如MySpace的Samy蠕蟲病毒,進行了詳盡分析。更重要的是,不管你使用何種主流的Web程式語言和環境,例如
NET、Java或PHP,《AJAX安全技術》都給出了許多具體、前沿的建議。通過《AJAX安全技術》你將了解到以下幾點:
如何剛氐AJAX特有的安全風險,包括過度細分的Web服務、應用程式控制流程篡改以及對程式邏輯的操控。
如何預防針對AJAX的攻擊手段,包括JavaScript劫持、持久化存儲竊取以及對mashup程式的滲透。
如何避免基於XSS和SQL注入的攻擊,包括由AJAX衍生出來的SQL注入攻擊(只需要兩次請求就可以暴露整個後台資料庫)。
如何使用GoogleGears和Doj0開發安全的離線AJAX應用程式。
如何發現Prototype、DWR及ASRNETAJAX等AJAX框架中的安全問題以及我們自己仍需實現哪些功能。
如何更安全地編寫AJAX代碼,如何確定並修改已有代碼中的安全缺陷。
不管是編寫或者維護AJAX應用程式的開發人員、架構師,還是打算或正在設計新AJAX程式的項目經理,以及包括QA和滲透測試人員在內的所有軟體安全人士,(AJAX安全技術》書都是必不可少的。
目錄
第1章AJAX安全介紹1
1.1AJAX基礎知識2
1.1.1什麼是AJAX2
1.1.2動態HTML(DHTML)10
1.2AJAX架構(Architecture)的轉變過程11
1.2.1胖客戶端架構11
1.2.2瘦客戶端架構12
1.2.3AJAX:最適合的架構14
1.2.4從安全形度看胖客戶端應用程式15
1.2.5從安全形度看瘦客戶端應用程式15
1.2.6從安全形度看AJAX架構17
1.3一場完美的攻擊風暴17
1.3.1不斷增加的複雜度、透明度及代碼量18
1.3.2社會學問題20
1.3.3AJAX應用程式:富有吸引力的、戰略上的目標21
1.4本章小結22
第2章劫持23
2.1攻擊24
2.1.1攻擊票務系統24
2.1.2攻擊客戶端數據綁定30
2.1.3攻擊AJAXAPI34
2.2黑夜中的盜竊39
第3章Web攻擊41
3.1基本攻擊分類41
3.1.1資源枚舉41
3.1.2參數操縱45
3.2其他攻擊66
3.2.1跨站請求偽造攻擊66
3.2.2釣魚攻擊68
3.2.3拒絕服務(Denial-of-Service,DoS)68
3.3保護Web應用程式免受資源枚舉和參數操作的攻擊69
3.4本章小結70
第4章AJAX攻擊層面71
4.1什麼是攻擊層面71
4.2傳統Web應用程式的攻擊層面72
4.2.1表單輸入73
4.2.2cookie74
4.2.3報頭75
4.2.4隱藏的表單輸入75
4.2.5請求參數76
4.2.6上傳檔案78
4.3傳統的Web應用程式攻擊:一份成績單79
4.4Web服務的攻擊層面81
4.4.1Web服務的方法81
4.4.2Web服務的定義82
4.5AJAX應用程式的攻擊層面83
4.5.1AJAX應用程式攻擊層面的來源84
4.5.2黑客的最愛86
4.6正確的輸入驗證86
4.6.1有關黑名單及其他補丁的問題87
4.6.2治標不治本90
4.6.3白名單輸入驗證93
4.6.4正則表達式96
4.6.5關於輸入驗證的其他想法96
4.7驗證富客戶端的用戶輸入98
4.7.1驗證標記語言98
4.7.2驗證二進制檔案100
4.7.3驗證JavaScript原始碼100
4.7.4驗證序列化數據106
4.8關於由用戶提供的內容109
4.9本章小結110
第5章AJAX代碼的複雜性111
5.1多種語言和架構111
5.1.1數組索引112
5.1.2字元串操作113
5.1.3代碼注釋115
5.1.4事不關己,高高掛起115
5.2JavaScript的怪異之處117
5.2.1解釋,而不是編譯117
5.2.2弱類型118
5.3異步性120
5.3.1競爭條件120
5.3.2死鎖及哲學家用餐問題124
5.3.3客戶端同步化127
5.3.4留意你所採納的建議128
5.4本章小結129
第6章AJAX應用程式的透明度131
6.1黑盒對白盒131
6.1.1示例:133
6.1.2示例:用AJAX實現的135
6.1.3對比結果139
6.2像API一樣的Web應用程式140
6.3一些特殊的安全錯誤141
6.3.1不恰當的身份認證141
6.3.2過度細化服務端API143
6.3.3在JavaScript中存儲會話狀態146
6.3.4與用戶相關的敏感數據147
6.3.5包含在客戶端的注釋及文檔148
6.3.6在客戶端進行的數據轉換149
6.4通過隱藏來保證安全152
6.5本章小結154
第7章劫持AJAX應用程式155
7.1劫持AJAX框架155
7.1.1意外的方法衝突156
7.1.2人為的方法衝突158
7.2劫持“即時”的AJAX163
7.3劫持JSONAPI167
7.3.1劫持對象定義172
7.3.2JSON劫持的根源173
7.3.3如何防範JSON劫持173
7.4本章小結176
第8章攻擊客戶端存儲179
8.1客戶端存儲系統概述179
8.2HTTPcookies181
8.2.1cookie訪問控制規則183
8.2.2HTTPcookie的存儲能力188
8.2.3cookie的生命期191
8.2.4cookie存儲的其他安全問題192
8.2.5cookie存儲總結193
8.3Flash本地共享對象194
8.4DOM存儲201
8.4.1會話存儲202
8.4.2全局存儲204
8.4.3DOM存儲的細節討論205
8.4.4DOM存儲安全207
8.4.5DOM存儲總結208
8.5InternetExploreruserData209
8.6一般客戶端存儲的攻擊和防範方法214
8.6.1跨域攻擊214
8.6.2跨目錄攻擊215
8.6.3跨連線埠攻擊216
8.7本章小結216
第9章離線AJAX應用程式219
9.1離線AJAX應用程式219
9.2GoogleGears220
9.2.1GoogleGears內置的安全特性及其缺點221
9.2.2探索工作者池224
9.2.3泄露並篡改本地伺服器(LocalServer)中的數據226
9.2.4直接訪問GoogleGears資料庫229
9.2.5SQL注入和GoogleGears230
9.2.6客戶端SQL注入有多危險234
9.3Dojo.Offline236
9.3.1保證密鑰安全237
9.3.2保證數據安全238
9.3.3可作為密鑰的良好密碼239
9.4再論客戶端輸入驗證240
9.5創建離線應用程式的其他方式241
9.6本章小結242
第10章請求來源問題243
10.1Robots、Spiders、Browsers及其他網路爬蟲243
10.2請求來源不確定性和JavaScript245
10.2.1從Web伺服器的角度看AJAX請求246
10.2.2是你自己,還是貌似你的某人249
10.2.3使用JavaScript傳送HTTP請求251
10.2.4在AJAX出現之前的JavaScriptHTTP攻擊252
10.2.5通過XMLHttpRequest竊取其他內容254
10.2.6實戰結合XSS/XHR進行攻擊258
10.3防範措施260
10.4本章小結261
第11章WebMashup和聚合程式263
11.1網際網路上計算機可以使用的數據263
11.1.120世紀90年代早期:人類Web的黎明263
11.1.220世紀90年代中期:機器Web的誕生264
11.1.32000年左右:機器Web逐漸成熟266
11.1.4可公用的Web服務266
11.2Mashup:Web中的弗蘭肯斯坦268
11.2.1269
11.2.270
11.2.3其他的Mashup應用程式270
11.3創建Mashup應用程式271
11.4橋接、代理及網關274
11.5攻擊AJAX代理275
11.6Mashup程式中的輸入驗證279
11.7聚合網站282
11.8安全性和可信度的降低287
11.9本章小結290
第12章攻擊表現層291
12.1從內容信息中分離表現信息291
12.2攻擊表現層294
12.3對級聯樣式表的數據挖掘295
12.4外觀篡改297
12.5嵌入程式邏輯305
12.6目標級聯樣式表306
12.7防範表現層攻擊311
12.8本章小結312
第13章JavaScript蠕蟲313
13.1JavaScript蠕蟲概述313
13.1.1傳統的計算機病毒314
13.1.2JavaScript蠕蟲316
13.2創建JavaScript蠕蟲318
13.2.1JavaScript的局限性319
13.2.2傳播JavaScript蠕蟲320
13.2.3JavaScript蠕蟲攜帶的惡意代碼320
13.2.4JavaScript中的信息竊取321
13.3關於區域網路322
13.3.1竊取瀏覽器歷史記錄326
13.3.2竊取搜尋引擎的查詢結果327
13.3.3總結328
13.4案例學習:Samy蠕蟲329
13.4.1工作原理330
13.4.2病毒攜帶的程式333
13.4.3關於Samy蠕蟲的結論334
13.5案例學習:Yamanner蠕蟲(JS/Yamanner-A)336
13.5.1工作原理337
13.5.2病毒攜帶的程式339
13.5.3關於Yamanner蠕蟲的結論340
13.6從實際JavaScript蠕蟲中能學到的經驗342
13.7本章小結343
第14章測試AJAX應用程式345
14.1黑魔法345
14.2並不是所有人都使用瀏覽器來查看網頁349
14.3兩手都要抓,兩手都要硬351
14.4安全測試工具352
14.4.1生成網站目錄353
14.4.2漏洞檢測354
14.4.3分析工具:Sprajax356
14.4.4分析工具:ParosProxy357
14.4.5分析工具:LAPSE(Eclipse中輕量級的程式安全分析工具)359
14.4.6分析工具:WebInspectTM360
14.5其他一些關於安全測試的想法361
第15章AJAX框架分析363
15.1ASP .NET363
15.1.1ASP .NETAJAX(以前被稱為Atlas)363
15.1.2ScriptService367
15.1.3安全缺點:UpdatePanel對ScriptService368
15.1.4ASP .NET和WSDL369
15.1.5ValidateRequest373
15.1.6ViewStateUserKey374
15.1.7ASP .NET配置和調試375
15.2PHP376
15.2.1Sajax376
15.2.2Sajax和跨站請求偽造378
15.3JavaEE380
15.4JavaScript框架382
15.4.1對客戶端代碼的一個警告383
15.4.2Prototype383
15.5本章小結385
附錄ASamy蠕蟲原始碼387
附錄BYamanner蠕蟲原始碼397
……