Python全棧安全 Full Stack Python Security: Cryptography, Tls, and Attack Resistance
Dennis Byrne 譯 趙宏偉 姚領田 馮少棟 唐進
買這商品的人也買了...
-
$607Java EE因特網輕量級框架整合開發:SSM框架(Spring MVC+Spring+MyBatis)和Redis實現
-
$352我的 Python 世界玩《Minecraft我的世界》學 Python 編程
-
$580$493 -
$680$537 -
$580$493 -
$580$458 -
$680$537 -
$1,200$948 -
$534$507 -
$774$735 -
$403軟件性能測試 — LoadRunner 性能監控與分析實例詳解
-
$774$735 -
$620$484 -
$720$562 -
$650$507 -
$580$458 -
$709Java Web 開發從0到1
-
$539$512 -
$720$569 -
$880$695 -
$680$537 -
$980$774 -
$880$695 -
$650$507 -
$680$537
相關主題
商品描述
主要內容 ●加密、散列和數字簽名。 ●創建和安裝TLS證書。 ●在Django中實現身份驗證、授權、OAuth 2.0和表單 驗證。 防範點擊劫持、跨站腳本和SQL註入等攻擊。
目錄大綱
目 錄
第Ⅰ部分 密碼學基礎
第1章 縱深防禦 3
1.1 攻擊面 4
1.2 什麽是縱深防禦 6
1.2.1 安全標準 7
1.2.2 最佳實踐 8
1.2.3 安全基本原則 9
1.3 工具 11
1.4 小結 15
第2章 散列 17
2.1 什麽是散列函數 17
2.2 原型人物 22
2.3 數據完整性 23
2.4 選擇加密散列函數 24
2.4.1 哪些散列函數是安全的 24
2.4.2 哪些散列函數是不安全的 25
2.5 Python中的加密散列 27
2.6 校驗和函數 30
2.7 小結 31
第3章 密鑰散列 33
3.1 數據身份驗證 33
3.1.1 密鑰生成 34
3.1.2 什麽是密鑰散列 37
3.2 HMAC函數 39
3.3 時序攻擊 43
3.4 小結 45
第4章 對稱加密 47
4.1 什麽是加密 47
4.2 cryptography包 50
4.2.1 危險品層 50
4.2.2 配方層 51
4.2.3 密鑰輪換 53
4.3 什麽是對稱加密 54
4.3.1 分組密碼 54
4.3.2 流密碼 56
4.3.3 加密模式 57
4.4 小結 61
第5章 非對稱加密 63
5.1 密鑰分發問題 63
5.2 什麽是非對稱加密 64
5.3 不可否認性 69
5.3.1 數字簽名 70
5.3.2 RSA數字簽名 71
5.3.3 RSA數字簽名驗證 72
5.3.4 橢圓曲線數字簽名 73
5.4 小結 76
第6章 傳輸層安全 77
6.1 SSL、TLS和HTTPS 77
6.2 中間人攻擊 78
6.3 TLS握手 80
6.3.1 密碼套件協商 80
6.3.2 密鑰交換 81
6.3.3 服務器身份驗證 84
6.4 Django與HTTP 88
6.5 Gunicorn與HTTPS 91
6.5.1 自簽名公鑰證書 92
6.5.2 Strict-Transport-Security響應頭 94
6.5.3 HTTPS重定向 95
6.6 TLS和requests包 96
6.7 TLS和數據庫連接 97
6.8 TLS和電子郵件 99
6.8.1 隱式TLS 99
6.8.2 電子郵件客戶端身份驗證 100
6.8.3 SMTP身份驗證憑據 100
6.9 小結 101
第Ⅱ部分 身份驗證和授權
第7章 HTTP會話管理 105
7.1 什麽是HTTP會話 105
7.2 HTTP cookie 107
7.2.1 Secure指令 108
7.2.2 Domain指令 108
7.2.3 Max-Age 109
7.2.4 瀏覽器長度的會話 110
7.2.5 以編程方式設置cookie 110
7.3 會話狀態持久化 111
7.3.1 會話序列化程序 111
7.3.2 簡單的基於緩存的會話 113
7.3.3 基於直寫式緩存的會話 116
7.3.4 基於數據庫的會話引擎 116
7.3.5 基於文件的會話引擎 117
7.3.6 基於cookie的會話引擎 117
7.4 小結 122
第8章 用戶身份驗證 123
8.1 用戶註冊 124
8.1.1 模板 128
8.1.2 Bob註冊賬戶 131
8.2 什麽是用戶身份驗證 132
8.2.1 內置Django視圖 133
8.2.2 創建一個Django應用 134
8.2.3 Bob登錄和註銷 137
8.3 簡明要求身份驗證 139
8.4 測試身份驗證 140
8.5 小結 142
第9章 用戶密碼管理 143
9.1 密碼變更工作流程 143
9.2 密碼存儲 149
9.2.1 加鹽散列 152
9.2.2 密鑰派生函數 154
9.3 配置密碼散列 158
9.3.1 原生密碼散列器 159
9.3.2 自定義密碼散列器 160
9.3.3 Argon2密碼散列 160
9.3.4 遷移密碼散列器 161
9.4 密碼重置工作流程 166
9.5 小結 169
第10章 授權 171
10.1 應用程序級授權 172
10.1.1 權限 173
10.1.2 用戶和組管理 175
10.2 強制授權 180
10.2.1 低級困難方式 180
10.2.2 高級簡單方式 183
10.2.3 條件渲染 185
10.2.4 測試授權 186
10.3 反模式和最佳實踐 187
10.4 小結 188
第11章 OAuth 2 189
11.1 給予類型 190
11.2 Bob授權Charlie 195
11.2.1 請求授權 196
11.2.2 給予授權 197
11.2.3 令牌交換 197
11.2.4 訪問受保護的資源 198
11.3 Django OAuth Toolkit 200
11.3.1 授權服務器職責 201
11.3.2 資源服務器職責 204
11.4 requests-oauthlib 209
11.5 小結 213
第Ⅲ部分 抵禦攻擊
第12章 使用操作系統 217
12.1 文件系統級授權 217
12.1.1 請求許可 218
12.1.2 使用臨時文件 219
12.1.3 使用文件系統權限 220
12.2 調用外部可執行文件 222
12.2.1 用內部API繞過shell 224
12.2.2 使用subprocess模塊 226
12.3 小結 228
第13章 永遠不要相信輸入 229
13.1 使用Pipenv進行包管理 229
13.2 YAML遠程代碼執行 232
13.3 XML實體擴展 235
13.3.1 二次爆炸攻擊 235
13.3.2 十億笑攻擊 236
13.4 拒絕服務 238
13.5 Host標頭攻擊 239
13.6 開放重定向攻擊 243
13.7 SQL註入 246
13.7.1 原始SQL查詢 247
13.7.2 數據庫連接查詢 248
13.8 小結 249
第14章 跨站腳本攻擊 251
14.1 什麽是XSS 251
14.1.1 持久型XSS 252
14.1.2 反射型XSS 253
14.1.3 基於DOM的XSS 254
14.2 輸入驗證 256
14.3 轉義輸出 263
14.3.1 內置的渲染實用程序 264
14.3.2 HTML屬性引用 266
14.4 HTTP響應標頭 267
14.4.1 禁用對cookie的JavaScript訪問 267
14.4.2 禁用MIME類型嗅探 270
14.4.3 X-XSS-Protection標頭 271
14.5 小結 272
第15章 內容安全策略 273
15.1 編寫內容安全策略 274
15.1.1 獲取指令 276
15.1.2 導航和文檔指令 280
15.2 使用django-csp部署策略 281
15.3 使用個性化策略 283
15.4 報告CSP違規 286
15.5 CSP Level 3 288
15.6 小結 289
第16章 跨站請求偽造 291
16.1 什麽是請求偽造 291
16.2 會話ID管理 293
16.3 狀態管理約定 295
16.4 Referer標頭驗證 298
16.5 CSRF令牌 301
16.5.1 POST請求 301
16.5.2 其他不安全的請求方法 303
16.6 小結 304
第17章 跨源資源共享 307
17.1 同源策略 307
17.2 簡單CORS請求 309
17.3 帶django-cors-headers的CORS 311
17.4 CORS預檢請求 314
17.4.1 發送預檢請求 314
17.4.2 發送預檢響應 318
17.5 跨源發送cookie 319
17.6 CORS和CSRF抵禦 321
17.7 小結 322
第18章 點擊劫持 323
18.1 X-Frame-Options標頭 326
18.2 Content-Security-Policy標頭 327
18.3 與Mallory同步 329
18.4 小結 330