PHP被稱為全世界非常好用的Web開發語言之一,其獨特的語法混合了C、Java、Perl以及PHP自創的語法。PHP簡單易用,學習門檻低,但在其快速發展的同時安全問題也日益突出,所出現的安全問題亦不可小覷。1、一本面向研發技術人員的安全書,幫助研發人員在項目研發過程中規避風險。2、針對PHP研發人員的項目安全高級指南,涵蓋百餘種安全問題解決方案。3、多位PHP安全領域大咖聯合力薦,全面引導讀者探索項目更深層次的安全問題。
基本介紹
- 中文名:PHP安全之道
- 別名:PHP項目安全的架構、技術與實踐
- 作者:欒濤
- 出版時間:2019年11月01日
- 出版社:人民郵電出版社
- 頁數:290 頁
- ISBN:9787115515278
- 類別:網路/安全
- 定價:79 元
- 開本:16 開
- 裝幀:平裝
內容簡介,目錄,作者簡介,
內容簡介
本書主要面向PHP 研發人員,詳細講解PHP 項目漏洞的產生原理及防範措施,幫助研發人員在項目研發過程中規避風險。
全書共有10章。第1章講述PHP項目安全問題的主要形成原因以及解決PHP項目安全問題的原則;第2章講述PHP項目安全的基礎,以使研發人員了解PHP語言自身的安全機制;第3章通過講解PHP編碼過程中需要注意的安全問題,幫助研發人員正確運用PHP函式及變數轉換;第4章闡述常見的漏洞並給出了相應的處理方式,涉及SQL注入漏洞、XML注入漏洞、郵件安全、PHP組件安全、檔案包含安全、系統命令注入等方面,幫助研發人員在項目初期即能有效防範漏洞問題;第5章講述PHP與客戶端互動過程中存在的安全隱患及解決方案,包括瀏覽器安全邊界、客戶端腳本攻擊、偽造劫持等一系列和客戶端相關的安全防護;第6章講述在PHP項目中常用的加密方式及其套用場景;第7章講述PHP項目安全的進階知識,幫助研發人員在更高的角度防範風險;第8章從PHP業務邏輯安全的角度講述每個業務場景的安全防範路徑,以進一步提升研發人員在PHP項目實戰中對安全問題的認識,並提高解決具體業務安全問題的能力;第9章講述PHP的各種支撐軟體的安全套用問題;第10章講述如何建立有安全保障的企業研發體系。
對於PHP項目的安全問題,本書不僅進行了系統性的闡釋,給出了體系化的安全問題解決之道,還通過豐富的小示例幫助讀者在平常工作中得以見微知著,並能防微杜漸,增強安全意識,提高安全警惕,不放過任何威脅到項目安全的“細枝末節”。因而,本書不僅適合PHP 研發人員,也適合網路安全技術人員參閱。
目錄
第 1章 PHP 項目安全概述01
1.1 PHP 項目安全形勢不容樂觀 01
1.2 PHP 項目安全問題產生的原因 03
1.3 PHP 項目安全原則 05
1.3.1 不可信原則 05
1.3.2 最小化原則 06
1.3.3 簡單就是美 07
1.3.4 組件的安全 08
1.4 小結 09
第 2章 PHP 項目安全基礎 10
2.1 信息禁止 10
2.1.1 禁止PHP 錯誤信息 10
2.1.2 防止版本號暴露 12
2.2 防止全局變數覆蓋 15
2.3 使用PHP 的訪問限制 16
2.3.1 檔案系統限制 16
2.3.2 遠程訪問限制 17
2.3.3 開啟安全模式 19
2.3.4 禁用危險函式 21
2.4 PHP 中的Cookie 安全 22
2.4.1 Cookie 的HttpOnly 23
2.4.2 Cookie 的Secure 23
2.4.3 指定Cookie 的使用範圍 23
2.5 PHP 的安裝與升級 24
2.5.1 儘量減少非必要模組載入 27
2.5.2 使用第三方安全擴展 27
2.6 小結 28
第3章 PHP 編碼安全 29
3.1 弱數據類型安全 29
3.1.1 Hash 比較缺陷 30
3.1.2 bool 比較缺陷 32
3.1.3 數字轉換比較缺陷 34
3.1.4 switch 比較缺陷 37
3.1.5 數組比較缺陷 38
3.2 PHP 代碼執行漏洞 39
3.2.1 代碼執行的函式 39
3.2.2 代碼執行防禦 43
3.3 PHP 變數安全 44
3.3.1 全局變數覆蓋 44
3.3.2 動態變數覆蓋 45
3.3.3 函式extract( ) 變數覆蓋 47
3.3.4 函式import_request_variables( ) 變數覆蓋 48
3.3.5 函式parse_str( ) 變數覆蓋 49
3.4 URL 重定向安全 50
3.5 請求偽造攻擊 52
3.5.1 伺服器請求偽造 53
3.5.2 SSRF 漏洞的危害 53
3.5.3 在PHP 中容易引起SSRF 的函式 55
3.5.4 容易造成SSRF 的功能點 57
3.5.5 SSRF 漏洞防禦 58
3.6 檔案上傳安全 62
3.6.1 檔案上傳漏洞的危害 62
3.6.2 檔案上傳漏洞 62
3.6.3 檢查檔案類型防止上傳漏洞 64
3.6.4 檢查檔案擴展名稱防止上傳漏洞 66
3.6.5 檔案上傳漏洞的綜合防護 67
3.7 避免反序列化漏洞 69
3.8 小結 71
第4章 PHP 項目中的常見漏洞與防護 72
4.1 SQL 注入漏洞 72
4.1.1 什麼是SQL 注入 72
4.1.2 報錯注入 74
4.1.3 普通注入 74
4.1.4 隱式類型注入 75
4.1.5 盲注 76
4.1.6 寬位元組注入 77
4.1.7 二次解碼注入 78
4.2 SQL 注入漏洞防護 79
4.2.1 MySQL 預編譯處理 79
4.2.2 PHP 使用MySQL 的預編譯處理 81
4.2.3 校驗和過濾 83
4.2.4 寬位元組注入防護 86
4.2.5 禁用魔術引號 87
4.3 XML 注入漏洞防護 87
4.4 郵件安全 87
4.4.1 郵件注入 88
4.4.2 防止郵件注入 89
4.5 PHP 組件漏洞防護 90
4.5.1 RSS 安全漏洞 90
4.5.2 PHPMailer 漏洞 91
4.5.3 OpenSSL 漏洞 92
4.5.4 SSL v2.0 協定漏洞 92
4.6 檔案包含安全 93
4.6.1 檔案包含漏洞 93
4.6.2 避免檔案包含漏洞 97
4.7 系統命令注入 99
4.7.1 易發生命令注入的函式 99
4.7.2 防禦命令注入 102
4.8 小結 103
第5章 PHP 與客戶端互動安全 104
5.1 瀏覽器跨域安全 104
5.1.1 瀏覽器同源策略 104
5.1.2 瀏覽器跨域資源共享 106
5.1.3 JSONP 資源載入安全 108
5.2 XSS 漏洞防禦 112
5.2.1 反射型XSS 113
5.2.2 存儲型XSS 115
5.2.3 DOM 型XSS 116
5.2.4 通過編碼過濾和轉換進行防禦 118
5.2.5 開啟HttpOnly 防禦XSS 122
5.2.6 對Cookie 進行IP 綁定 123
5.2.7 瀏覽器策略防禦XSS 124
5.3 警惕瀏覽器繞過 126
5.4 跨站請求偽造防禦 127
5.4.1 CSRF 請求過程 127
5.4.2 CSRF 防禦方法 128
5.5 防止點擊劫持 132
5.6 HTTP 回響拆分漏洞 133
5.7 會話攻擊安全防禦 136
5.7.1 會話泄露 136
5.7.2 會話劫持 138
5.7.3 會話固定 139
5.8 小結 140
第6章 PHP 與密碼安全 141
6.1 用戶密碼安全 141
6.1.1 加密密碼 141
6.1.2 密碼加鹽 142
6.1.3 定期修改 144
6.2 防止暴力破解 144
6.3 隨機數安全 145
6.4 數字摘要 147
6.5 MAC 和HMAC 簡介 148
6.6 對稱加密 150
6.7 非對稱加密 156
6.8 小結 157
第7章 PHP 項目安全進階 158
7.1 單一入口 158
7.1.1 實現方式 158
7.1.2 單一入口更安全 159
7.2 項目部署安全 159
7.2.1 目錄結構 160
7.2.2 目錄許可權 161
7.2.3 避免敏感配置硬編碼 162
7.3 保障內容安全 163
7.3.1 不安全的HTTP 傳輸 164
7.3.2 HTTPS 傳輸更安全 166
7.3.3 HTTPS 證書未驗證 168
7.3.4 防止盜鏈 168
7.3.5 敏感詞 170
7.4 防止越權和許可權控制 171
7.4.1 什麼是越權訪問 171
7.4.2 造成越權的原因 172
7.4.3 RBAC 控制模型 173
7.4.4 系統鑒權 174
7.4.5 系統隔離 175
7.5 API 接口訪問安全 175
7.5.1 IP 白名單 176
7.5.2 摘要認證 177
7.5.3 OAuth 認證 178
7.6 防止接口重放 181
7.6.1 使用時間戳 181
7.6.2 使用Nonce 182
7.6.3 同時使用時間戳和Nonce 184
7.7 小結 186
第8章 PHP 業務邏輯安全 187
8.1 簡訊安全 187
8.1.1 簡訊的安全隱患 187
8.1.2 簡訊安全策略 188
8.2 敏感信息泄露 189
8.2.1 登錄密碼泄露 189
8.2.2 登錄信息泄露 189
8.2.3 資源遍歷泄露 189
8.2.4 物理路徑泄露 190
8.2.5 程式使用版本泄露 191
8.2.6 JSON 劫持導致用戶信息泄露 191
8.2.7 原始碼泄露 192
8.3 人機識別策略 192
8.3.1 圖片驗證碼 193
8.3.2 簡訊驗證碼 194
8.3.3 語音驗證碼 194
8.3.4 其他驗證方式 196
8.4 常見業務流程安全 196
8.4.1 註冊安全 196
8.4.2 登錄安全 196
8.4.3 密碼找回安全 198
8.4.4 修改密碼安全 200
8.4.5 支付安全 201
8.5 其他業務安全 202
8.6 小結 203
第9章 套用軟體安全204
9.1 套用指紋安全 204
9.2 伺服器連線埠安全 205
9.3 Apache 的使用安全 208
9.3.1 運行安全 209
9.3.2 訪問安全 210
9.3.3 隱藏Apache 版本號 210
9.3.4 目錄和檔案安全 211
9.3.5 防止目錄遍歷 212
9.3.6 日誌配置 214
9.3.7 413 錯誤頁面跨站腳本漏洞 216
9.3.8 上傳目錄限制 217
9.4 Nginx 的使用安全 217
9.4.1 運行安全 217
9.4.2 項目配置檔案 218
9.4.3 日誌配置 218
9.4.4 目錄和檔案安全 220
9.4.5 隱藏版本號 220
9.4.6 防止目錄遍歷 221
9.4.7 Nginx 檔案類型錯誤解析漏洞 221
9.4.8 IP 訪問限制 223
9.5 MySQL 的使用安全 224
9.5.1 運行安全 225
9.5.2 密碼安全 226
9.5.3 賬號安全 226
9.5.4 資料庫安全 227
9.5.5 限制非授權IP 訪問 228
9.5.6 檔案讀取安全 228
9.5.7 常用安全選項 229
9.5.8 數據安全 231
9.6 Redis 的使用安全 231
9.6.1 密碼安全 231
9.6.2 IP 訪問限制 232
9.6.3 運行安全 232
9.7 Memcache 的使用安全 233
9.7.1 IP 訪問限制 233
9.7.2 使用SASL 驗證 234
9.8 小結 237
第 10章 企業研發安全體系建設238
10.1 微軟工程項目安全簡介 238
10.2 OWASP 軟體保障成熟度模型簡介 239
10.3 建立合理的安全體系 239
10.3.1 制定安全規範標準 239
10.3.2 業務需求安全分析 240
10.3.3 編碼過程安全 241
10.3.4 進行安全測試 241
10.3.5 線上安全 241
10.4 安全應急回響 241
10.5 小結 242
附錄243
附錄1 PHP 各版本漏洞 243
附錄2 常見PHP 開源系統指紋 276
作者簡介
欒濤,信息安全專家、資深研發工程師、架構師,先後就職於奇虎360、滴滴出行,參與設計和研發了多種大型業務系統和大型信息安全系統,擅長大型微服務、信息安全、大數據等各類業務架構支撐與實施工作,在安全防護、監測、掃描等大型系統的設計與研發上有著豐富的實戰經驗。