API安全實戰

《API安全實戰》是2022年機械工業出版社出版的圖書。

基本介紹

  • 中文名:API安全實戰
  • 出版時間:2022年8月1日
  • 出版社:機械工業出版社
  • ISBN:9787111707745
內容簡介,圖書目錄,

內容簡介

本書旨在引導讀者掌握在不同環境下確保API安全所需的技術。首先介紹基本的安全編碼技術,之後深入研究身份認證和授權技術。全書共5部分,13章,其中:第1部分介紹了API安全的基本原理,是本書其餘內容的基礎;第2部分更詳細地介紹RESTful API的身份驗證機制;第3部分介紹了授權(authorization)相關的內容;第4部分深入探討了如何確保運行在Kubernetes環境下的微服務API的安全性;第5部分介紹物聯網(IoT)中的API。這類API的安全尤其有挑戰性,因為物聯網設備的能力往往很有限,並且會遭遇到各種各樣的威脅。對於構建Web程式有一定經驗的開發人員來講,本書可以提高他們對API安全技術和z佳實踐的了解,也有助於技術架構師緊跟z新API安全方法技術更新的步伐。

圖書目錄

譯者序
前言
致謝
關於本書
關於作者
第一部分 基礎
第1章 什麼是API安全 2
1.1 打個比方:參加駕照考試 3
1.2 什麼是API 4
1.3 API安全上下文 6
1.4 API安全要素 10
1.4.1 資產 11
1.4.2 安全目標 11
1.4.3 環境與威脅模型 13
1.5 安全機制 15
1.5.1 加密 16
1.5.2 身份識別和身份驗證 17
1.5.3 訪問控制和授權 18
1.5.4 審計日誌 19
1.5.5 速率限制 20
小測驗答案 21
小結 21
第2章 安全API開發 22
2.1 Natter API 22
2.1.1 Natter API概覽 23
2.1.2 功能實現概覽 24
2.1.3 設定項目 25
2.1.4 初始化資料庫 26
2.2 開發REST API 28
2.3 連線REST終端 31
2.4 注入攻擊 33
2.4.1 防禦注入攻擊 37
2.4.2 使用許可權緩解SQL注入攻擊 39
2.5 輸入驗證 40
2.6 生成安全的輸出 45
2.6.1 利用XSS攻擊 47
2.6.2 防禦XSS攻擊 49
2.6.3 實施防護 50
小測驗答案 52
小結 53
第3章 加固Natter API 54
3.1 使用安全控制來處置威脅 54
3.2 速率限制解決可用性 55
3.3 使用身份驗證抵禦欺騙 61
3.3.1 HTTP基本身份驗證 62
3.3.2 使用Scrypt確保密碼安全存儲 62
3.3.3 創建密碼資料庫 63
3.3.4 在Natter API中註冊用戶 64
3.3.5 驗證用戶 66
3.4 使用加密確保數據不公開 68
3.4.1 啟用HTTPS 70
3.4.2 加強數據傳輸安全 71
3.5 使用審計日誌問責 72
3.6 訪問控制 77
3.6.1 強制身份驗證 78
3.6.2 訪問控制列表 79
3.6.3 Natter的強制訪問控制 81
3.6.4 Natter空間增加新成員 83
3.6.5 避免提權攻擊 84
小測驗答案 85
小結 85
第二部分 基於令牌的身份驗證
第4章 會話Cookie驗證 88
4.1 Web瀏覽器的身份驗證 88
4.1.1 在JavaScript中調用Natter API 89
4.1.2 表單提交攔截 91
4.1.3 提供同源HTML服務 91
4.1.4 HTTP認證的缺點 94
4.2 基於令牌的身份驗證 95
4.2.1 令牌存儲抽象 97
4.2.2 基於令牌登錄的實現 98
4.3 Session Cookie 100
4.3.1 防範會話固定攻擊 103
4.3.2 Cookie安全屬性 105
4.3.3 驗證會話Cookie 107
4.4 防範跨站請求偽造攻擊 109
4.4.1 SameSite Cookie 111
4.4.2 基於哈希計算的雙重提交Cookie 113
4.4.3 在Natter API中套用雙重提交Cookie 116
4.5 構建Natter登錄UI 121
4.6 實現註銷 125
小測驗答案 127
小結 127
第5章 最新的基於令牌的身份驗證 128
5.1 使用CORS允許跨域請求 128
5.1.1 預檢請求 129
5.1.2 CORS頭 131
5.1.3 在Natter API中添加CORS頭部 132
5.2 不使用Cookie的令牌 135
5.2.1 在資料庫中保存令牌的狀態 136
5.2.2 Bearer身份驗證方案 141
5.2.3 刪除過期令牌 143
5.2.4 在Web存儲中存儲令牌 143
5.2.5 修改CORS過濾器 146
5.2.6 對Web存儲的XSS攻擊 147
5.3 加固資料庫令牌存儲 149
5.3.1 對資料庫令牌進行哈希計算 150
5.3.2 使用HMAC驗證令牌 151
5.3.3 保護敏感屬性 156
小測驗答案 158
小結 159
第6章 自包含令牌和JWT 160
6.1 在客戶端存儲令牌狀態 160
6.2 JSON Web令牌 163
6.2.1 標準JWT聲明 165
6.2.2 JOSE頭部 166
6.2.3 生成標準的JWT 168
6.2.4 驗證簽名JWT 171
6.3 加密敏感屬性 172
6.3.1 認證加密 173
6.3.2 NaCl認證加密 175
6.3.3 加密JWT 177
6.3.4 使用JWT庫 180
6.4 使用安全類型來加固API設計 183
6.5 處理令牌撤銷 185
小測驗答案 189
小結 189
第三部分 授權
第7章 OAuth2和OpenID Connect 192
7.1 作用域令牌 193
7.1.1 在Natter中添加作用域令牌 193
7.1.2 作用域和許可權之間的區別 197
7.2 OAuth2簡介 200
7.2.1 客戶端類型 201
7.2.2 授權許可 201
7.2.3 發現OAuth2終端 203
7.3 授權碼許可 204
7.3.1 重定向不同類型客戶端的URI 208
7.3.2 使用PKCE增強授權碼交換安全性 209
7.3.3 刷新令牌 210
7.4 驗證訪問令牌 211
7.4.1 令牌自省 212
7.4.2 確保HTTPS客戶端配置安全 217
7.4.3 令牌撤銷 219
7.4.4 JWT訪問令牌 221
7.4.5 加密JWT訪問令牌 227
7.4.6 讓AS解密令牌 228
7.5 單點登錄 229
7.6 OpenID Connect 230
7.6.1 ID令牌 231
7.6.2 加固OIDC 232
7.6.3 向API傳遞ID令牌 233
小測驗答案 235
小結 235
第8章 基於身份的訪問控制 237
8.1 用戶和組 237
8.2 基於角色的訪問控制 243
8.2.1 角色映射許可權 244
8.2.2 靜態角色 245
8.2.3 確定用戶角色 247
8.2.4 動態角色 248
8.3 基於

相關詞條

熱門詞條

聯絡我們