Web開發(fā)的身份和數(shù)據(jù)安全
定 價:48 元
- 作者:[美]Jonathan,LeBlanc(喬納森?勒布朗),[美]Tim,Messerschmidt(蒂姆?梅塞施米特)
- 出版時間:2018/2/1
- ISBN:9787519814205
- 出 版 社:中國電力出版社
- 中圖法分類:TP393.092.2
- 頁碼:
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書深入探討了構建保護數(shù)據(jù)和身份安全的接口所要掌握的概念、技術和編程方法論,而且兼顧可用性。你將學到如何彌補現(xiàn)有系統(tǒng)的漏洞、防御各種各樣的攻擊媒介,以及如何在天生不安全的環(huán)境中保障自身周全。? 了解Web和應用安全的現(xiàn)狀。? 構建安全的密碼加密方式,以及與各種密碼攻擊媒介斗爭。? 創(chuàng)建數(shù)字指紋,在瀏覽器、設備和配對設備中識別用戶。? 通過OAuth和OpenID Connect構建安全的數(shù)據(jù)傳輸系統(tǒng)。? 使用其他的識別方法提供第二種身份驗證方式。? 加固Web應用,防止攻擊。? 使用SSL/TLS及同步和異步加密創(chuàng)建安全的數(shù)據(jù)傳輸系統(tǒng)。
作為Web和應用開發(fā)者、設計師、工程師和創(chuàng)作者,我們責無旁貸,自己必須掌握身份和數(shù)據(jù)安全方面的知識。如果Web開發(fā)者不知道如何在傳輸過程中正確隱蔽數(shù)據(jù),不經意間就會敞開網(wǎng)站的安全大門。通過這本實用的手冊,你將學到為何以及如何保護用戶和數(shù)據(jù)的安全。這是一本適合初學者和有經驗的開發(fā)者閱讀的書。本書先通講基本概念,隨后便說明具體做法和內部機制,而且配備了大量有用且詳細的示例代碼片段。任何一名Web開發(fā)者都應該閱讀本書。Lenny MarkusPayPal工程團隊高級經理
Jonathan LeBlanc獲得過艾美獎,是一位軟件工程師、技術作者和PayPal Global Developer Advocacy的主管。Jonathan主攻身份識別、授權和安全,硬件Web通信,以及數(shù)據(jù)挖掘技術,而且關注的都是人機互聯(lián)。Tim Messerschmidt是Google Developer Relations的項目經理,主管德國、奧地利和瑞士(DACH)地區(qū)的業(yè)務。加入Google之前,他領導著PayPal和Braintree Developer Evangelism團隊的歐洲、中東、非洲(EMEA)和亞太(APAC)區(qū)。
目錄
前言1
第1章導論7
現(xiàn)有安全模型的問題7
弱密碼8
為了安全犧牲可用性9
不當?shù)臄?shù)據(jù)加密10
最薄弱的環(huán)節(jié):人類11
單點登錄12
理解密碼安全中的熵13
隨機選擇的密碼熵14
人為選定的密碼熵15
區(qū)分用戶名和密碼在系統(tǒng)中的作用17
保護身份的當前標準18
好的和不好的安全算法18
應該保護哪些數(shù)據(jù)?20
賬戶恢復機制和社會工程20
安全問題帶來的問題20
下一步21
第2章密碼加密、哈希和加鹽22
靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)22
靜態(tài)數(shù)據(jù)22
動態(tài)數(shù)據(jù)24
密碼攻擊媒介24
暴力攻擊26
使用reCAPTCHA添加驗證碼27
字典攻擊33
反向查詢表34
彩虹表35
加鹽37
生成隨機鹽值38
重用鹽值39
鹽值的長度39
把鹽值存儲在哪里39
撒胡椒40
選擇正確的密碼哈希函數(shù)41
bcrypt41
PBKDF243
scrypt44
對比哈希值,驗證密碼46
密鑰延伸47
重新計算哈希值48
下一步48
第3章身份安全基礎知識49
理解不同的身份類型49
社會身份50
實際身份50
弱身份51
利用身份提升用戶體驗51
信任區(qū)簡介52
瀏覽器指紋識別53
阻礙瀏覽器指紋識別的配置54
可識別的瀏覽器信息55
獲取瀏覽器細節(jié)56
位置追蹤58
設備指紋識別(手機/平板)61
設備指紋識別(藍牙配對設備)62
實現(xiàn)身份63
第4章通過OAuth2和OpenIDConnect實現(xiàn)安全的
登錄64
身份驗證和授權之間的區(qū)別64
身份驗證64
授權65
OAuth和OpenIDConnect是什么65
OAuth20簡介68
使用OAuth20處理授權70
OAuth20權限核發(fā)類型72
使用BearerToken73
使用OpenIDConnect授權和驗證身份73
OAuth2和OAuth10a之間的安全注意事項75
構建一個OAuth20服務器75
創(chuàng)建Express應用76
設置服務器的數(shù)據(jù)庫76
生成授權碼和令牌77
ES5中Mathrandom()函數(shù)的官方文檔79
授權端點80
處理令牌的存活期83
處理資源請求87
使用刷新令牌89
處理錯誤90
為服務器添加OpenIDConnect功能94
ID令牌模式95
修改授權端點96
調整令牌端點97
userinfo端點99
使用OpenIDConnect管理會話99
構建OAuth2客戶端100
使用授權碼100
使用資源屬主憑據(jù)或客戶端憑據(jù)授權103
為客戶端添加OpenIDConnect功能105
OpenIDConnect基本流程105
OAuth20和OpenIDConnect之外107
第5章身份認證的其他方法108
設備和瀏覽器指紋識別108
雙因素身份驗證和n因素身份驗證109
n因素身份驗證109
一次性密碼110
使用Authy實現(xiàn)雙因素身份驗證113
使用生物特征代替密碼120
如何評價生物特征的效果121
面部識別121
視網(wǎng)膜和虹膜掃描122
靜脈識別123
新出現(xiàn)的標準123
FIDOAlliance123
Oz126
區(qū)塊鏈126
小結127
第6章增強Web應用的安全128
保護會話128
會話的種類129
Express處理會話的方式130
使用SHA-2保護密碼131
處理XSS134
XSS攻擊的三種類型134
測試XSS保護機制135
小結140
CSRF攻擊140
使用csurf處理CSRF140
有用的Node資源141
Lusca142
Helmet142
Node安全項目143
其他減輕危害的技術144
小結145
第7章數(shù)據(jù)傳輸安全147
SSL/TLS147
證書驗證類型和權威機構149
創(chuàng)建供測試的自簽名證書151
異步加密159
用例159
具體示例161
異步加密的優(yōu)缺點和用途167
同步加密168
初始向量169
填充170
分組加密的操作模式172
使用CTR加密模式的AES174
使用GCM驗證加密模式的AES177
同步加密的優(yōu)缺點和用途179
附錄AGitHub倉庫181
附錄B技術前提條件和要求183
詞匯表191