Python全棧安全 Full Stack Python Security: Cryptography, Tls, and Attack Resistance

Dennis Byrne 譯 趙宏偉 姚領田 馮少棟 唐進

  • Python全棧安全-preview-1
  • Python全棧安全-preview-2
  • Python全棧安全-preview-3
Python全棧安全-preview-1

買這商品的人也買了...

商品描述

主要內容 ●加密、散列和數字簽名。 ●創建和安裝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