本書在《 Web開(kāi)發(fā)與安全防范》“十二五”職業(yè)教育國(guó)家規(guī)劃教材的基礎(chǔ)上改版而成,也是工業(yè)和信息化部“十四五”規(guī)劃教材。本書緊扣網(wǎng)絡(luò)安全實(shí)戰(zhàn)化人才的培養(yǎng)需求,將“實(shí)戰(zhàn)化能力與思辨能力培養(yǎng)”的教學(xué)理念融入設(shè)計(jì)和編寫中,以開(kāi)發(fā)一個(gè)博客系統(tǒng)為主線,融入系統(tǒng)設(shè)計(jì)、編碼實(shí)現(xiàn)、測(cè)試、發(fā)布、運(yùn)維的過(guò)程中可能出現(xiàn)的安全問(wèn)題,以及針對(duì)安全問(wèn)題的測(cè)試、驗(yàn)證和修復(fù)的相關(guān)知識(shí)與技能。本書共分為 9個(gè)項(xiàng)目,涵蓋 Web安全基礎(chǔ)、安全的登錄認(rèn)證、安全的數(shù)據(jù)庫(kù)交互、安全的用戶輸入、安全的個(gè)人信息修改、安全的文件上傳、安全的文件包含、安全的應(yīng)用發(fā)布和安全的 Web防護(hù)體系建設(shè),本書配套了豐富的數(shù)字資源。
武春嶺,男,漢族,中共黨員,二級(jí)教授,現(xiàn)任重慶電子工程職業(yè)學(xué)院人工智能與大數(shù)據(jù)學(xué)院院長(zhǎng)。重慶市政協(xié)委員,國(guó)家"萬(wàn)人計(jì)劃”教學(xué)名師,享受國(guó)務(wù)院政府特殊津貼專家,信息安全技術(shù)應(yīng)用國(guó)家級(jí)教學(xué)創(chuàng)新團(tuán)隊(duì)負(fù)責(zé)人,重慶市五一勞動(dòng)獎(jiǎng)?wù)芦@得者,重慶市技術(shù)能手,重慶市特級(jí)技師、重慶市級(jí)名師,重慶市委網(wǎng)信辦網(wǎng)絡(luò)安全專家咨詢委員會(huì)副主任,重慶市公安局網(wǎng)絡(luò)與信息安全信息通報(bào)機(jī)制專家,重慶市教委信息化專家,兼任中共重慶市網(wǎng)信辦專家副主任委員,國(guó)家安全行業(yè)指導(dǎo)委員會(huì)委員,世界技能大賽網(wǎng)絡(luò)安全賽項(xiàng)中國(guó)區(qū)專家。2021年4月,入選重慶五一勞動(dòng)獎(jiǎng)?wù)聰M表彰人選公示名單。2021年10月,被表彰為重慶市第六屆先進(jìn)工作者。 2021年9月26日,榮獲全國(guó)教材建設(shè)先進(jìn)個(gè)人稱號(hào)。
項(xiàng)目一 Web 安全基礎(chǔ) 1
1.1 任務(wù)一:Web 技術(shù)的發(fā)展歷程 . 2
1.1.1 Web 1.0 . 3
1.1.2 Web 2.0 . 3
1.1.3 Web 3.0 .. 4
1.2 任務(wù)二:Web 安全的核心問(wèn)題 . 4
1.3 任務(wù)三:HTTP 及安全性 . 6
1.3.1 HTTP 概述 .. 6
1.3.2 HTTPS 的安全性分析 11
1.4 任務(wù)四:Web 應(yīng)用中的編碼與加密 15
1.4.1 字符編碼 16
1.4.2 傳輸過(guò)程的編碼 .. 17
1.4.3 Web 系統(tǒng)中的加密方法 .. 19
項(xiàng)目二 安全的登錄認(rèn)證 . 21
2.1 任務(wù)一:登錄認(rèn)證功能實(shí)現(xiàn) 22
2.1.1 了解登錄認(rèn)證 22
2.1.2 創(chuàng)建登錄頁(yè)面 23
2.1.3 判斷登錄狀態(tài) 24
2.1.4 增加驗(yàn)證碼 .. 26
2.2 任務(wù)二:登錄認(rèn)證漏洞形成原理 . 29
2.2.1 登錄認(rèn)證漏洞的概念 29
2.2.2 登錄認(rèn)證漏洞的分類 29
2.2.3 登錄認(rèn)證漏洞的危害 30
2.3 任務(wù)三:登錄認(rèn)證漏洞的檢測(cè)與驗(yàn)證 .. 30
2.3.1 驗(yàn)證碼重放漏洞 .. 30
2.3.2 用戶名探測(cè)漏洞 .. 36
2.3.3 弱密碼漏洞 .. 41
2.4 任務(wù)四:登錄認(rèn)證漏洞的修復(fù)與防范 .. 43
2.4.1 驗(yàn)證碼重放漏洞的修復(fù) .. 43
2.4.2 用戶名探測(cè)漏洞的修復(fù) .. 50
2.4.3 弱密碼漏洞的修復(fù) . 54
項(xiàng)目三 安全的數(shù)據(jù)庫(kù)交互 59
3.1 任務(wù)一:利用數(shù)據(jù)庫(kù)實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè) 60
3.1.1 了解數(shù)據(jù)庫(kù) .. 60
3.1.2 使用數(shù)據(jù)庫(kù)存儲(chǔ)用戶的身份信息 . 62
3.1.3 使用數(shù)據(jù)庫(kù)存儲(chǔ)文章 64
3.1.4 實(shí)現(xiàn)文章搜索功能 . 65
3.2 任務(wù)二:SQL 注入漏洞的形成原理 66
3.2.1 SQL 注入漏洞的概念 66
3.2.2 SQL 注入漏洞的分類 67
3.2.3 SQL 注入漏洞的危害 67
3.3 任務(wù)三:SQL 注入漏洞的檢測(cè)與驗(yàn)證 .. 68
3.3.1 繞過(guò)后臺(tái)登錄漏洞(字符型注入漏洞) . 68
3.3.2 文章頁(yè)面注入漏洞(數(shù)字型注入漏洞) . 72
3.3.3 搜索框注入漏洞 .. 74
3.3.4 SQL 注入漏洞的進(jìn)階技巧. 76
3.4 任務(wù)四:SQL 注入漏洞的修復(fù)與防范 .. 78
3.4.1 參數(shù)化查詢 .. 78
3.4.2 繞過(guò)后臺(tái)登錄漏洞的修復(fù)(字符型注入漏洞的修復(fù)) . 79
3.4.3 文章頁(yè)面注入漏洞的修復(fù)(數(shù)字型注入漏洞的修復(fù)) . 81
3.4.4 搜索框注入漏洞的修復(fù)(搜索框注入漏洞的修復(fù)) .. 84
項(xiàng)目四 安全的用戶輸入 . 88
4.1 任務(wù)一:博客系統(tǒng)相關(guān)功能實(shí)現(xiàn) . 89
4.1.1 文章發(fā)布相關(guān)功能實(shí)現(xiàn) .. 89
4.1.2 評(píng)論功能實(shí)現(xiàn) 95
4.2 任務(wù)二:跨站腳本攻擊的原理 .. 99
4.2.1 反射型 XSS 攻擊 . 99
4.2.2 存儲(chǔ)型 XSS 攻擊 . 99
4.2.3 DOM 型 XSS 攻擊 100
4.3 任務(wù)三:跨站腳本漏洞檢測(cè)與驗(yàn)證 . 100
4.3.1 檢測(cè)跨站腳本漏洞 .. 101
4.3.2 驗(yàn)證跨站腳本漏洞 .. 102
4.4 任務(wù)四:跨站腳本漏洞的修復(fù)與防范 105
4.4.1 對(duì)用戶輸入進(jìn)行處理 . 105
4.4.2 使用內(nèi)容安全策略 .. 106
4.4.3 使用安全 Cookie 106
項(xiàng)目五 安全的個(gè)人信息修改. 108
5.1 任務(wù)一:博客系統(tǒng)的功能實(shí)現(xiàn) 109
5.1.1 創(chuàng)建表單 . 109
5.1.2 處理表單提交 . 109
5.2 任務(wù)二:跨站請(qǐng)求偽造攻擊的原理 ..110
5.2.1 CSRF 攻擊的步驟 .111
5.2.2 CSRF 攻擊的特點(diǎn) .111
5.3 任務(wù)三:跨站請(qǐng)求偽造漏洞檢測(cè)與驗(yàn)證 111
5.4 任務(wù)四:跨站請(qǐng)求偽造漏洞修復(fù)與防范 113
5.4.1 同源檢測(cè) ..114
5.4.2 Samesite Cookie 和 CSRTToken.114
5.4.3 特定情況下的必要驗(yàn)證 .116
項(xiàng)目六 安全的文件上傳 .. 118
6.1 任務(wù)一:構(gòu)造簡(jiǎn)單的文件上傳 .119
6.1.1 什么是文件上傳 .119
6.1.2 簡(jiǎn)單的文件上傳 120
6.1.3 上傳文件的方式 121
6.1.4 文件上傳數(shù)據(jù)的存儲(chǔ) . 122
6.1.5 文件上傳的三個(gè)階段 . 123
6.2 任務(wù)二:文件上傳漏洞 124
6.2.1 文件上傳漏洞的原理 . 124
6.2.2 文件上傳漏洞的危害 . 126
6.3 任務(wù)三:文件上傳漏洞的類型 131
6.3.1 文件類型繞過(guò)漏洞 .. 131
6.3.2 文件名繞過(guò)漏洞 132
6.3.3 目錄遍歷漏洞 . 133
6.3.4 二進(jìn)制文件上傳漏洞 . 134
6.3.5 非常規(guī)后綴名漏洞 .. 135
6.3.6 內(nèi)容欺騙漏洞 . 137
6.3.7 Web 服務(wù)器的負(fù)載均衡 138
6.4 任務(wù)四:文件上傳漏洞的檢測(cè)與驗(yàn)證 139
6.4.1 攻擊業(yè)務(wù)流程 . 139
6.4.2 文件上傳漏洞的檢測(cè)流程 .. 140
6.4.3 文件上傳漏洞的驗(yàn)證流程 .. 142
6.5 任務(wù)五:文件上傳漏洞的修復(fù)與防范 145
項(xiàng)目七 安全的文件包含 .. 149
7.1 任務(wù)一:構(gòu)造簡(jiǎn)單的文件包含 150
7.1.1 什么是文件包含 150
7.1.2 簡(jiǎn)單的文件包含 151
7.1.3 文件包含的業(yè)務(wù)流程 . 152
7.2 任務(wù)二:文件包含漏洞的原理 153
7.2.1 什么是文件包含漏洞 . 153
7.2.2 文件包含漏洞的類型 . 154
7.3 任務(wù)三:文件包含漏洞的檢測(cè)與驗(yàn)證 154
7.3.1 文件包含漏洞的檢測(cè)流程 .. 154
7.3.2 文件包含漏洞的驗(yàn)證流程 .. 155
7.4 任務(wù)四:文件包含漏洞的修復(fù)與防范 159
項(xiàng)目八 安全的應(yīng)用發(fā)布 .. 162
8.1 任務(wù)一:生產(chǎn)環(huán)境搭建 163
8.1.1 LAMP 環(huán)境的快速搭建 163
8.1.2 部署博客管理系統(tǒng) .. 178
8.2 任務(wù)二:Apache 安全配置 . 184
8.2.1 禁止目錄瀏覽 . 184
8.2.2 隱藏服務(wù)器的頭部信息 185
8.2.3 配置網(wǎng)站腳本的解析規(guī)則 .. 187
8.2.4 自定義錯(cuò)誤頁(yè)面 189
8.3 任務(wù)三:PHP 安全配置 190
8.3.1 關(guān)閉調(diào)試模式 . 190
8.3.2 配置 PHP 參數(shù) 192
8.4 任務(wù)四:MySQL 安全配置 194
8.4.1 配置 MySQL 參數(shù) 194
8.4.2 數(shù)據(jù)庫(kù)用戶降權(quán) 195
8.4.3 數(shù)據(jù)庫(kù)訪問(wèn)控制 195
項(xiàng)目九 安全的 Web 防護(hù)體系建設(shè). 197
9.1 任務(wù)一:確定安全設(shè)計(jì)和編碼原則 . 198
9.1.1 Web 應(yīng)用安全設(shè)計(jì)原則 198
9.1.2 Web 應(yīng)用安全編碼原則 204
9.2 任務(wù)二:建立基本的安全框架 .211
9.2.1 處理用戶交互權(quán)限 211
9.2.2 處理用戶輸入?yún)?shù) .. 212
9.2.3 確認(rèn)用戶應(yīng)用邊界 .. 213
9.2.4 處理流程規(guī)范化 213
9.3 任務(wù)三:實(shí)施安全的開(kāi)發(fā)流程 214
9.3.1 SDL 簡(jiǎn)介 . 214
9.3.2 SDL 實(shí)戰(zhàn)經(jīng)驗(yàn). 217
9.4 任務(wù)四:加固邊界的安全防護(hù) 221
9.4.1 硬件 WAF 222
9.4.2 ModSecurity 225
9.4.3 防篡改軟件 225
9.4.4 云防護(hù)系統(tǒng) 226
參考文獻(xiàn) . 228