重置密碼(一次性JwtToken)處理要點

  • 28
  • 0

筆記

參考文章:[白帽觀點] 你真的做對「重置密碼」?從日本 7-Eleven「7pay」使用者損失上千萬說起
1.Token 綁定唯一使用者
	jwt的payload包username或userid等唯一值
2.Token 產生方法不會被猜到
	e.g.單純只用 base64、使用 time 當 Token可能容易被解
3.防暴力破解
	最多嘗試輸入3次(手機簡訊通常6碼),且請求重置密碼有限制次數
4.Token 有效期限
	jwt的payload.exp做判斷是否已到期限
5.成功改完密碼後,所有之前的Token都應該失效
	Token失效定義, 但可能也要防暴力破解
	判斷是否有修改過密碼,將密碼hash值加入jwt中,再判斷與現行密碼hash值是否相等, 或以密碼變更日期判斷
6.僅限一次(One-Time-Use Token)
	加入memorycache記錄
7.密碼更新後, 原本連線(Session/cookie)應處理為失效
jwt C#實作
https://github.com/ripsea/dotNetSample/tree/main/Src/Utility/Jwt