譯者序
前 言
第1章 web應用安全 / 1
1.1 信息安全速覽 / 1
1.1.1 正統之道的尷尬 / 2
1.1.2 進入風險管理 / 4
1.1.3 分類學的啓發 / 5
1.1.4 實際的解決之道 / 6
1.2 web的簡明曆史 / 7
1.2.1 史前時期的故事: 1945~1994年 / 8
1.2.2 第一次瀏覽器大戰:1995~1999年 / 10
1.2.3 平淡期:2000~2003年 / 11
1.2.4 web 2.0 和第二次瀏覽器大戰:2004年之後 / 12
1.3 風險的演化 / 13
1.3.1 用戶作為安全風險的一個環節 / 14
1.3.2 難以隔離的web運行環境 / 14
1.3.3 缺乏統一的格局 / 15
1.3.4 跨瀏覽器交互:失敗的協同 / 16
1.3.5 客戶端和服務器端界限的日益模糊 / 17
第一部分 對web的解剖分析
第2章 一切從url開始 / 20
2.1 url的結構 / 21
2.1.1 協議名稱 / 21
2.1.2 層級url的標記符號 / 22
2.1.3 訪問資源的身份驗證 / 22
2.1.4 服務器地址 / 23
2.1.5 服務器端口 / 24
2.1.6 層級的文件路徑 / 24
2.1.7 查詢字符串 / 25
2.1.8 片段id / 25
2.1.9 把所有的東西整閤起來 / 26
2.2 保留字符和百分號編碼 / 28
2.3 常見的 url協議及功能 / 33
2.3.1 瀏覽器本身支持、與獲取文檔相關的協議 / 33
2.3.2 由第三方應用和插件支持的協議 / 33
2.3.3 未封裝的僞協議 / 34
2.3.4 封裝過的僞協議 / 34
2.3.5 關於協議檢測部分的結語 / 35
2.4 相對url的解析 / 35
2.5 安全工程速查錶 / 37
第3章 http協議 / 38
3.1 http 基本語法 / 39
3.1.1 支持http/0.9的惡果 / 40
3.1.2 換行處理帶來的各種混亂 / 41
3.1.3 經過代理的http請求 / 42
3.1.4 對重復或有衝突的頭域的解析 / 44
3.1.5 以分號作分隔符的頭域值 / 45
3.1.6 頭域裏的字符集和編碼策略 / 46
3.1.7 referer頭域的錶現 / 48
3.2 http 請求類型 / 48
3.2.1 get / 49
3.2.2 post / 49
3.2.3 head / 49
3.2.4 options / 50
3.2.5 put / 50
3.2.6 delete / 50
3.2.7 trace / 50
3.2.8 connect / 50
3.2.9 其他 http 方法 / 51
3.3 服務器響應代碼 / 51
3.4 持續會話 / 53
3.5 分段數據傳輸 / 55
3.6 緩存機製 / 55
3.7 http cookie 語義 / 57
3.8 http 認證 / 60
3.9 協議級彆的加密和客戶端證書 / 61
3.9.1 擴展驗證型證書 / 62
3.9.2 齣錯處理的規則 / 63
3.10 安全工程速查錶 / 64
第4章 html語言 / 65
4.1 html文檔背後的基本概念 / 66
4.1.1 文檔解析模式 / 67
4.1.2 語義之爭 / 68
4.2 理解html解析器的行為 / 69
4.2.1 多重標簽之間的交互 / 70
4.2.2 顯式和隱式的條件判斷 / 71
4.2.3 html解析的生存建議 / 71
4.3 html實體編碼 / 72
4.4 http/html 交互語義 / 73
4.5 超鏈接和內容包含 / 75
4.5.1 單純的鏈接 / 75
4.5.2 錶單和錶單觸發的請求 / 75
4.5.3 框架 / 77
4.5.4 特定類型的內容包含 / 78
4.5.5 關於跨站請求僞造 / 80
4.6 安全工程速查錶 / 81
第5章 層疊樣式錶 / 83
5.1 css基本語法 / 84
5.1.1 屬性定義 / 85
5.1.2 @ 指令和xbl綁定 / 85
5.1.3 與html的交互 / 86
5.2 重新同步的風險 / 86
5.3 字符編碼 / 87
5.4 安全工程速查錶 / 89
第6章 瀏覽器端腳本 / 90
6.1 javascript的基本特點 / 91
6.1.1 腳本處理模型 / 92
6.1.2 執行順序的控製 / 95
6.1.3 代碼和對象檢視功能 / 96
6.1.4 修改運行環境 / 97
6.1.5 javascript 對象錶示法(json)和其他數據序列化 / 99
6.1.6 e4x和其他語法擴展 / 101
6.2 標準對象層級 / 102
6.2.1 文檔對象模型 / 104
6.2.2 對其他文檔的訪問 / 106
6.3 腳本字符編碼 / 107
6.4 代碼包含模式和嵌入風險 / 108
6.5 活死人:visual basic / 109
6.6 安全工程速查錶 / 110
第7章 非html類型文檔 / 112
7.1 純文本文件 / 112
7.2 位圖圖片 / 113
7.3 音頻與視頻 / 114
7.4 各種xml文件 / 114
7.4.1 常規xml視圖效果 / 115
7.4.2 可縮放嚮量圖片 / 116
7.4.3 數學標記語言 / 117
7.4.4 xml用戶界麵語言 / 117
7.4.5 無綫標記語言 / 118
7.4.6 rss 和 atom訂閱源 / 118
7.5 關於不可顯示的文件類型 / 119
7.6 安全工程速查錶 / 120
第8章 瀏覽器插件産生的內容 / 121
8.1 對插件的調用 / 122
8.2 文檔顯示幫助程序 / 124
8.3 插件的各種應用框架 / 125
8.3.1 adobe flash / 126
8.3.2 microsoft silverlight / 128
8.3.3 sun java / 129
8.3.4 xml browser applications / 129
8.4 activex controls / 130
8.5 其他插件的情況 / 131
8.6 安全工程速查錶 / 132
第二部分 瀏覽器安全特性
第9章 內容隔離邏輯 / 134
9.1 dom的同源策略 / 135
9.1.1 document.domain / 136
9.1.2 postmessage(...) / 137
9.1.3 與瀏覽器身份驗證的交互 / 138
9.2 xmlhttprequest的同源策略 / 139
9.3 web storage 的同源策略 / 141
9.4 cookies 的安全策略 / 142
9.4.1 cookie對同源策略的影響 / 144
9.4.2 域名限製帶來的問題 / 145
9.4.3 localhost帶來的非一般風險 / 145
9.4.4 cookie與“閤法”dns劫持 / 146
9.5 插件的安全規則 / 147
9.5.1 adobe flash / 148
9.5.2 microsoft silverlight / 151
9.5.3 java / 151
9.6 如何處理格式含糊或意想不到的源信息 / 152
9.6.1 ip 地址 / 153
9.6.2 主機名裏有額外的點號 / 153
9.6.3 不完整的主機名 / 153
9.6.4 本地文件 / 154
9.6.5 僞url / 155
9.6.6 瀏覽器擴展和用戶界麵 / 155
9.7 源的其他應用 / 156
9.8 安全工程速查錶 / 157
第10章 源的繼承 / 158
10.1 about:blank頁麵的源繼承 / 158
10.2 data: url的繼承 / 160
10.3 javascript:和vbscript: url對源的繼承 / 162
10.4 關於受限僞url的一些補充 / 163
10.5 安全工程速查錶 / 164
第11章 同源策略之外的世界 / 165
11.1 窗口和框架的交互 / 166
11.1.1 改變現有頁麵的地址 / 166
11.1.2 不請自來的框架 / 170
11.2 跨域內容包含 / 172
11.3 與隱私相關的副作用 / 175
11.4 其他的同源漏洞和應用 / 177
11.5 安全工程速查錶 / 178
第12章 其他的安全邊界 / 179
12.1 跳轉到敏感協議 / 179
12.2 訪問內部網絡 / 180
12.3 禁用的端口 / 182
12.4 對第三方cookie的限製 / 184
12.5 安全工程速查錶 / 186
第13章 內容識彆機製 / 187
13.1 文檔類型檢測的邏輯 / 188
13.1.1 格式錯誤的mime type寫法 / 189
13.1.2 特殊的 content-type 值 / 189
13.1.3 無法識彆的content type類型 / 191
13.1.4 防禦性使用content-disposition / 193
13.1.5 子資源的內容設置 / 194
13.1.6 文件下載和其他非http內容 / 194
13.2 字符集處理 / 196
13.2.1 字節順序標記 / 198
13.2.2 字符集繼承和覆蓋 / 199
13.2.3 通過html代碼設置子資源字符集 / 199
13.2.4 非http 文件的編碼檢測 / 201
13.3 安全工程速查錶 / 202
第14章 應對惡意腳本 / 203
14.1 拒絕服務攻擊 / 204
14.1.1 執行時間和內存使用的限製 / 205
14.1.2 連接限製 / 205
14.1.3 過濾彈齣窗口 / 206
14.1.4 對話框的使用限製 / 208
14.2 窗口定位和外觀問題 / 209
14.3 用戶界麵的時差攻擊 / 211
14.4 安全工程速查錶 / 214
第15章 外圍的網站特權 / 215
15.1 瀏覽器和托管插件的站點權限 / 216
15.2 錶單密碼管理 / 217
15.3 ie瀏覽器的區域模型 / 219
15.4 安全工程速查錶 / 222
第三部分 瀏覽器安全機製的未來趨勢
第16章 新的瀏覽器安全特性與未來展望 / 224
16.1 安全模型擴展框架 / 224
16.1.1 跨域請求 / 225
16.1.2 xdomainrequest / 228
16.1.3 origin 請求頭的其他應用 / 229
16.2 安全模型限製框架 / 230
16.2.1 內容安全策略 / 230
16.2.2 沙盒框架 / 234
16.2.3 嚴格傳輸安全 / 236
16.2.4 隱私瀏覽模式 / 237
16.3 其他的一些進展 / 237
16.3.1 瀏覽器內置的 html淨化器 / 238
16.3.2 xss 過濾 / 239
16.4 安全工程速查錶 / 240
第17章 其他值得注意的瀏覽器機製 / 241
17.1 url級彆和協議級彆的提議 / 241
17.2 內容相關的特性 / 243
17.3 i/o接口 / 245
第18章 常見的web安全漏洞 / 246
18.1 與web應用相關的漏洞 / 246
18.2 web應用設計時應謹記的問題 / 248
18.3 服務器端的常見問題 / 250
後記 / 252
注釋 / 254
· · · · · · (
收起)