Web安全防護指南:基礎篇 ( 簡體 字) |
作者:蔡晶晶 張兆心 林天翔 編著 | 類別:1. -> 安全 -> 網路安全 -> 駭客攻擊與入侵 |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 48943 詢問書籍請說出此書號!【有庫存】 NT售價: 395 元 |
出版日:4/1/2018 |
頁數:360 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111587767 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:一、為什么要寫這本書
隨著網絡的普及,人們的工作、生活已經與網絡深度融合。Web系統由于其高度可定制的特點,非常適合承載現有的互聯網應用。目前,大量在線應用網站的出現和使用也印證了這一點。我們每個人每天都會打開各種網站搜索自己感興趣的內容或使用某一個應用,其中每個站點的功能各不相同,業務流程也各自獨立,并且站點功能及版本的迭代、更新速度非常快。同時,由于大量Web應用功能及版本的快速更新,也導致各類新型Web安全問題不斷出現。盡管Web安全問題的表現形式各異,但深入分析各類安全問題的成因會發現,這些安全問題有一定的共性并能通過相關的網絡安全技術來加以防御和解決。
反觀Web安全的學習過程,由于Web安全攻防涉及的技術、工具繁多,安全問題也表現出各種復雜的形式,學習者很容易被這些表象混淆,進入“只見樹木不見森林”的誤區,無法快速成長。因此,本書作者基于多年的安全研究、教學、工程實踐經驗,以幫助讀者建立知識體系為目標,通過原理、方法、代碼、實踐的層層深入,使讀者充分理解Web安全問題的成因、危害、關聯,進而有效地保護Web系統,抵御攻擊。
二、本書的主要內容
本書試圖整理出Web安全防護知識的體系,因此對每一類Web安全問題,都對從原理到攻防技術的演進過程加以詳細的講解。在針對安全問題的分析方面,本書從基礎的漏洞環境入手,可排除不同業務環境的干擾,更聚焦于安全問題本身。這種方式有利于幫助讀者在掌握每種Web安全問題的解決方案的同時,對整個Web安全防護體系建立清晰的認知。
本書主要內容共分為5部分,各部分內容如下。
第一部分(包括第1章):Web應用概念龐大、涉及的協議廣泛,因此,此部分沒有系統地介紹所有的基礎內容,而是抽取了與Web安全關系密切的協議等方面的基礎知識。這些知識對后續理解Web攻防技術極為關鍵。
第二部分(包括第2∼8章):重點講解Web應用中的基礎漏洞,從用戶端到服務器端依次開展分析。首先從主要攻擊用戶的跨站請求攻擊入手,之后了解Web應用中的請求偽造攻擊、針對Web應用于數據庫交互產生的SQL注入攻擊。再針對可直接上傳各類危險文件的上傳漏洞進行分析,并說明上傳漏洞中常用的木馬的基本原理。最后對服務器端的危險應用功能(文件包含、命令執行漏洞)進行分析。此部分重點講解上述基本漏洞的原理及攻防技術對抗方法,并針對每個漏洞的測試及防護方法的技術演進思路進行整理。
第三部分(包括第9∼15章):重點講解Web應用的業務邏輯層面的基礎安全問題。Web應用基于用戶管理機制來提供個性化的服務,用戶的身份認證則成為安全開展Web應用的基礎功能。此部分從用戶的未登錄狀態入手,講解用戶注冊行為中潛在的安全隱患。然后對用戶登錄過程中的安全問題進行整理,并對常見的用戶身份識別技術進行原理說明。最后對用戶登錄后的基本功能及用戶權限處理方式進行講解。
第四部分(包括第16∼19章):主要講解在實際Web站點上線之后的基礎防護方式,并從Web整體應用的視角展示攻防對抗過程中的技術細節。重點針對Web服務潛在的基礎信息泄漏方及對應處理方法進行總結。最后提供可解決大部分問題的簡單防護方案,這對安全運維有較大的用途。
第五部分(包括第20∼23章):在前幾部分的基礎上總結Web安全防護體系建設的基本方法。本部分先從Web安全中常見的防護類設備入手,分析各類安全防護設備的特點及適用范圍。之后,對目前業界權威的安全開發體系進行基本介紹,并對安全服務中的滲透測試的主要流程進行說明。最后以實例的形式展示如何進行快速的代碼審計。
以上每個部分的知識均為遞進關系。第一部分和第二部分幫助讀者了解Web應用中各類漏洞的原理及測試方式、防護手段等。第三部分和第四部分讓讀者了解業務層面和整體安全的防護方法。第五部分則從整體層間構建有效防護體系的思路。最后可綜合掌握Web安全防護的整體內容,這也是本書希望讀者獲得的閱讀效果。
三、本書的讀者對象
本書適合所有對Web安全感興趣的初學者以及從事安全行業的相關人員,主要包括以下幾類讀者:
信息安全及相關專業本科生
本書以基本的漏洞為例,循序漸進地梳理攻防對抗方式及各類漏洞的危害。信息安全及相關專業學生可根據這些內容快速入門,并以此作為基礎來探索信息安全更前沿的領域。
安全運維人員
本書提供了大量漏洞利用特征及有效的安全運維方式,可供安全運維人員在實際工作中快速發現系統安全狀況,并對安全漏洞進行基本的處理。
安全開發人員
本書列舉了各種漏洞的原理分析及防護方式,可幫助開發人員在Web系統的開發過程中對漏洞進行規避,進而從根源上避免Web漏洞的出現。
安全服務人員
安全服務人員重點關注如何快速發現目標Web系統的安全隱患并針對問題提出處理建議。此類讀者建議重點閱讀本書前三部分以及最后一部分的最后兩章,可為安全服務的工作開展提供更全面的技術支持。
攻防技術愛好者
對于攻防技術愛好者來說,本書提供了體系化的Web安全基礎原理,可有效豐富個人的知識儲備體系。
四、如何閱讀這本書
本書雖然篇幅不大,但涉及的內容繁多,加之Web安全是一個實踐性極強的領域,因此,我們對學習本書給出如下建議。
1.需要具備的基礎知識
Web系統一般需要服務器、中間件、Web語言、數據庫等多方面的支持,相應地,在Web安全防護中也會應用到上述知識。安全從業者不一定要像開發人員那樣對以上內容非常熟悉,但應對以上內容有初步了解并理解基本用法。這方面的教程很多,讀者可以自行選擇。另外,本書的所有案例均基于PHP環境編寫,因此讀者如有基本的PHP知識,則能更好地理解本書的內容。
2.具有一定編程經驗
在了解攻防技術方向之前,最好具有一定的編程經驗。這些經驗可幫助讀者快速閱讀漏洞源碼及相應的語句,并可顯著提升Web安全的學習效率。這里的編程經驗以可獨立閱讀各種語言的基礎示例代碼為基準,并不需要有十分專業的開發能力。
3.善用搜索引擎
在學習Web安全的過程中會遇到非常多的基礎內容或者特點,且每個人的基礎并不相同。針對個人不理解的問題,建議善用各類搜索引擎來獲取幫助。關于如何高效使用搜索引擎,可參考本書第四部分的講解。
4.動手實踐
Web安全是一個實踐性很強的領域,需要通過大量的直接攻防技術練習來建立對漏洞的直觀認識,并積累解決問題的經驗。本書給出了大量的案例,讀者可以利用這些案例進行練習,或者登錄“i春秋在線培訓平臺”(www.ichunqiu.com)進行專項練習。
在本書的學習閱讀順序上,建議讀者順序學習本書的各章,以便對Web安全防護建立系統認識。不同基礎的讀者也可根據自身情況以及關注內容進行選擇性的閱讀。
五、致謝
本書的編寫工作歷時兩年,在整個過程中得到了永信至誠科技股份有限公司與哈爾濱工業大學(威海)網絡與信息安全研究中心的同事的支持和幫助,在本書即將付梓之際,謹向他們表示最誠摯的感謝!
感謝哈爾濱工業大學(威海)計算機科學與技術學院的遲樂軍教授、谷松林老師在本書編寫的各個環節中提供的支持;感謝殷亞靜為本書繪制插圖;感謝倪遠東、王續武、劉深榮、孟晨、彭衍豪、劉驍睿、余超、盧鑫、李思銳、張鵬、雷朋荃、劉家豪、李彥哲、張瑞淇、付堯、黃欣、靳禎等對本書中案例的持續調整和完善;感謝機械工業出版社華章分社的編輯對本書的出版付出的勞動。
限于作者水平,加之Web安全防護技術的進展迅速,本書難免存在不當和疏漏之處,懇請各位讀者提出、指正!我們期待與讀者的交流!
作者
2018年1月 |
內容簡介:本書涉及的內容繁多,加之Web安全是一個實踐性極強的領域,因此,我們對學習本書給出如下建議:
讀者需要具備服務器、中間件、Web語言、數據庫、網絡等方面的基本知識。本書的所有案例均基于PHP環境編寫,讀者如有基本的PHP語言知識,能更好地理解本書內容。
讀者最好具有一定的編程經驗,以快速理解漏洞源碼,顯著提升Web安全學習效率。這里的編程經驗以可獨立閱讀各種語言的基礎示例代碼為標準。
在本書學習過程中,由于每個人的基礎不同,加之本書涉及內容眾多,有可能出現學習的難點,建議讀者善用各類搜索引擎來獲取幫助。關于如何高效使用搜索引擎,可參考本書第四部分的講解。
Web安全是一個實踐性很強的領域,需要通過大量的練習來建立對漏洞的直觀認識,并積累解決問題的經驗。本書給出了大量的案例,讀者可以利用這些案例進行練習。或者登錄i春秋在線培訓平臺進行專項練習。 |
目錄:推薦序 前言 第一部分 基礎知識 第1章 Web安全基礎 2 1.1 Web安全的核心問題 2 1.2 HTTP協議概述 5 1.2.1 HTTP請求頭的內容 6 1.2.2 HTTP協議響應頭的內容 9 1.2.3 URL的基本格式 11 1.3 HTTPS協議的安全性分析 12 1.3.1 HTTPS協議的基本概念 13 1.3.2 HTTPS認證流程 14 1.3.3 HTTPS協議的特點總結 16 1.4 Web應用中的編碼與加密 16 1.4.1 針對字符的編碼 16 1.4.2 傳輸過程的編碼 18 1.4.3 Web系統中的加密措施 20 1.5 本章小結 22 第二部分 網絡攻擊的基本防護方法 第2章 XSS攻擊 24 2.1 XSS攻擊的原理 24 2.2 XSS攻擊的分類 25 2.2.1 反射型XSS 26 2.2.2 存儲型XSS 26 2.2.3 基于DOM的XSS 26 2.3 XSS攻擊的條件 26 2.4 漏洞測試的思路 27 2.4.1 基本測試流程 28 2.4.2 XSS進階測試方法 30 2.4.3 測試流程總結 40 2.5 XSS攻擊的利用方式 40 2.5.1 竊取Cookie 40 2.5.2 網絡釣魚 42 2.5.3 竊取客戶端信息 44 2.6 XSS漏洞的標準防護方法 45 2.6.1 過濾特殊字符 45 2.6.2 使用實體化編碼 50 2.6.3 HttpOnly 52 2.7 本章小結 52 第3章 請求偽造漏洞與防護 53 3.1 CSRF攻擊 54 3.1.1 CSRF漏洞利用場景 58 3.1.2 針對CSRF的防護方案 58 3.1.3 CSRF漏洞總結 61 3.2 SSRF攻擊 61 3.2.1 SSRF漏洞利用場景 62 3.2.2 針對SSRF的防護方案 65 3.2.3 SSRF漏洞總結 66 3.3 本章小結 66 第4章 SQL注入 67 4.1 SQL注入攻擊的原理 67 4.2 SQL注入攻擊的分類 72 4.3 回顯注入攻擊的流程 72 4.3.1 SQL手工注入的思路 73 4.3.2 尋找注入點 73 4.3.3 通過回顯位確定字段數 74 4.3.4 注入并獲取數據 76 4.4 盲注攻擊的流程 78 4.4.1 尋找注入點 79 4.4.2 注入獲取基本信息 81 4.4.3 構造語句獲取數據 84 4.5 常見防護手段及繞過方式 86 4.5.1 參數類型檢測及繞過 86 4.5.2 參數長度檢測及繞過 88 4.5.3 危險參數過濾及繞過 90 4.5.4 針對過濾的繞過方式匯總 95 4.5.5 參數化查詢 99 4.5.6 常見防護手段總結 100 4.6 本章小結 101 第5章 文件上傳攻擊 102 5.1 上傳攻擊的原理 103 5.2 上傳的標準業務流程 103 5.3 上傳攻擊的條件 106 5.4 上傳檢測繞過技術 107 5.4.1 客戶端JavaScript檢測及繞過 107 5.4.2 服務器端MIME檢測及繞過 110 5.4.3 服務器端文件擴展名檢測及繞過 113 5.4.4 服務器端文件內容檢測及繞過 118 5.4.5 上傳流程安全防護總結 122 5.5 文件解析攻擊 123 5.5.1 .htaccess攻擊 123 5.5.2 Web服務器解析漏洞攻擊 125 5.6 本章小結 127 第6章 Web木馬的原理 128 6.1 Web木馬的特點 129 6.2 一句話木馬 130 6.2.1 一句話木馬的原型 130 6.2.2 一句話木馬的變形技巧 131 6.2.3 安全建議 135 6.3 小馬與大馬 136 6.3.1 文件操作 137 6.3.2 列舉目錄 139 6.3.3 端口掃描 139 6.3.4 信息查看 140 6.3.5 數據庫操作 142 6.3.6 命令執行 143 6.3.7 批量掛馬 144 6.4 本章小結 145 第7章 文件包含攻擊 146 7.1 漏洞原理 146 7.2 服務器端功能實現代碼 147 7.3 漏洞利用方式 148 7.3.1 上傳文件包含 148 7.3.2 日志文件包含 148 7.3.3 敏感文件包含 150 7.3.4 臨時文件包含 151 7.3.5 PHP封裝協議包含 151 7.3.6 利用方式總結 151 7.4 防護手段及對應的繞過方式 152 7.4.1 文件名驗證 152 7.4.2 路徑限制 154 7.4.3 中間件安全配置 156 7.5 本章小結 158 第8章 命令執行攻擊與防御 159 8.1 遠程命令執行漏洞 159 8.1.1 利用系統函數實現遠程命令 執行 159 8.1.2 利用漏洞獲取webshell 163 8.2 系統命令執行漏洞 167 8.3 有效的防護方案 169 8.3.1 禁用部分系統函數 169 8.3.2 嚴格過濾關鍵字符 169 8.3.3 嚴格限制允許的參數類型 169 8.4 本章小結 170 第三部分 業務邏輯安全 第9章 業務邏輯安全風險存在的前提 172 9.1 用戶管理的基本內容 173 9.2 用戶管理涉及的功能 174 9.3 用戶管理邏輯的漏洞 175 9.4 本章小結 176 第10章 用戶管理功能的實現 177 10.1 客戶端保持方式 177 10.1.1 Cookie 178 10.1.2 Session 179 10.1.3 特定應用環境實例 180 10.2 用戶基本登錄功能實現及安全情況分析 186 10.3 本章小結 189 第11章 用戶授權管理及安全分析 190 11.1 用戶注冊階段安全情況 191 11.1.1 用戶重復注冊 191 11.1.2 不校驗用戶注冊數據 192 11.1.3 無法阻止的批量注冊 193 11.2 用戶登錄階段的安全情況 194 11.2.1 明文傳輸用戶名/密碼 194 11.2.2 用戶憑證(用戶名/密碼)可被暴力破解 198 11.2.3 萬能密碼 199 11.2.4 登錄過程中的安全問題及防護手段匯總 202 11.3 密碼找回階段的安全情況 203 11.3.1 驗證步驟可跳過 204 11.3.2 平行越權 205 11.3.3 驗證過于簡單 205 11.3.4 弱token 205 11.3.5 憑證返回 205 11.3.6 Session覆蓋 206 11.4 記住登錄狀態 207 11.5 用戶手段管理及登錄安全匯總 208 11.6 本章小結 208 第12章 用戶身份識別技術及安全防護 210 12.1 驗證碼技術 211 12.1.1 驗證碼的發展思路 211 12.1.2 驗證碼識別技術的發展 214 12.2 驗證碼帶來的問題 217 12.2.1 驗證碼不刷新 218 12.2.2 驗證碼生成可控 218 12.2.3 驗證碼前臺對比 218 12.3 二次驗證技術 219 12.3.1 短信隨機碼識別 219 12.3.2 郵箱確認鏈接識別 219 12.4 身份識別技術的防護 220 12.5 本章小結 220 第13章 用戶后續功能及集中認證方式安全分析 222 13.1 用戶取得授權后的應用安全隱患 222 13.1.1 密碼修改功能 224 13.1.2 繞過原密碼驗證 225 13.2 用戶集中認證方式 225 13.2.1 OAuth2.0的授權過程 227 13.2.2 可能存在的安全隱患 227 13.3 本章小結 228 第14章 用戶權限處理問題 229 14.1 用戶越權的案例 229 14.2 越權漏洞的出現根源分析 229 14.3 保持用戶一致性的措施 231 14.4 有效的用戶權限管理方式 231 14.5 本章小結 237 第15章 業務流程安全基礎防護方式總結 238 15.1 用戶注冊階段 240 15.2 用戶登錄階段 242 15.3 密碼找回階段 244 15.4 基本業務功能應用階段 245 15.5 本章小結 247 第四部分 攻防綜合視角下的Web安全防護第16章 標準業務場景 250 16.1 CMS及其特征 250 16.2 常見的遠程管理方式 253 16.2.1 Web應用管理后臺 254 16.2.2 數據庫開放遠程管理 255 16.2.3 在線編輯器 256 16.3 本章小結 257 第17章 用戶視角下的所見范圍探測 258 17.1 易被忽視的whois信息 258 17.2 利用搜索引擎發現敏感信息 261 17.2.1 常用操作符 262 17.2.2 綜合利用搜索引擎 267 17.2.3 專項搜索用法匯總 269 17.3 真實IP地址發現手段 271 17.4 真實物理地址 274 17.5 目標端口開放情況 275 17.6 目標版本特征發現 277 17.7 利用Web漏洞掃描工具的利與弊 279 17.8 分站信息查找 281 17.9 本章小結 282 第18章 用戶視角下的防護手段識別 283 18.1 開放端口及對應業務識別 283 18.2 是否有防護類軟件 284 18.3 基本漏洞的防護測試 285 18.4 本章小結 287 第19章 常用的防護方案 288 19.1 整體防護思路 288 19.2 簡單的防護方案 289 19.2.1 關閉或修改服務器開放端口 289 19.2.2 利用防護類工具 291 19.2.3 采用成熟的CMS系統 292 19.3 提升安全性的基礎手段 292 19.3.1 隱藏Web服務器的banner 292 19.3.2 robots.txt 296 19.3.3 提升后臺地址復雜度 298 19.4 DDoS攻擊及防護方法 298 19.4.1 DDoS的主要攻擊手段 299 19.4.2 如何解決DDoS攻擊問題 302 19.5 本章小結 304 第五部分 常見Web防護技術及防護開展方法 第20章 Web防護技術的演進 308 20.1 硬件WAF 309 20.1.1 常用的防護規則 311 20.1.2 Apache ModSecurity 312 20.2 防篡改軟件 314 20.3 云防護系統 315 20.4 本章小結 316 第21章 Web安全防護體系建議 317 21.1 Web安全的核心問題 318 21.2 現實環境下的客觀因素 319 21.3 如何建立基本的安全框架 319 21.3.1 處理用戶交互權限 320 21.3.2 處理用戶輸入參數 321 21.3.3 確認用戶應用邊界 321 21.3.4 處理流程規范化 322 21.4 微軟SDL安全開發流程 322 21.5 本章小結 324 第22章 滲透測試的方法及流程 325 22.1 滲透測試的關注點 326 22.2 滲透測試的階段 326 22.3 滲透測試的基本要求 328 22.4 本章小結 329 第23章 快速代碼審計實踐 330 23.1 快速代碼審計的基本流程 330 23.2 基本功能安全審計 331 23.3 系統防護功能的安全性分析 333 23.4 業務邏輯安全分析 343 23.5 本章小結 360 后記 361 參考文獻 362 |
序: |