訓練項目僅做「查庫比對」,生產環境需完整安全體系:
註冊流程
- 前端:密碼強度檢查、圖形/短信驗證碼、防重複提交。
- 後端:
- 用戶名/手機號/郵箱唯一性檢查(資料庫唯一索引 + 應用層查詢)。
- 密碼:**BCrypt/Argon2 + 隨機鹽** 哈希存儲,**嚴禁 MD5/SHA 明文**。
- 寫入用戶表,事務中同步初始化關聯表(錢包、設置等)。
- 發送歡迎郵件/短信(異步隊列)。
- 記錄註冊日誌:IP、設備指紋、Referer、耗時。
登錄流程
- 驗證碼校驗(圖形/短信/設備指紋)。
2. 查用戶 → 不存在返回通用提示「用戶名或密碼錯誤」(防用戶枚舉)。
3. BCrypt.checkpw(input, storedHash) 驗證密碼。
4. 登錄成功:
- 生成 JWT / Session,設置 HttpOnly、Secure、SameSite Cookie。
- 更新最後登錄時間、IP、設備信息。
- 風控:異地登錄推送通知、新設備二次驗證。
- 寫入登錄審計日誌(成功/失敗、原因、風險等級)。
5. 失敗:計數器 +1,達閾值鎖定賬戶/要求驗證碼。
核心安全原則
- **最小權限**:登錄接口僅返回必要信息。
- **纏深度防禦**:傳輸層 HTTPS、應用層加密、業務層風控。
- **可審計**:所有關鍵操作留存不可篡改日誌。
安全無小事,從註冊登錄開始構建纏深度防禦體系。