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