Token 安全登陸防止竊取


HTTP 協議是無狀態的

  • 在web中使用cookie+session的技術來保持用戶登陸的狀態
  • 移動端使用token來保持用戶登陸狀態由於token在網絡中傳輸,很容易被 中間人獲取,進而模擬用戶進行其他相關操作

解決辦法:

  • 服務器端

響應頭增加隨機字符串 CSRF_TOKEN=xxxxxxxxxxx(每次請求都不同)

  • 客戶端
  1. 客戶端和服務端 保留密鑰 secret = yyyyyyyyy
  2. 客戶端獲取響應頭CSRF_TOKEN下次請求必須攜帶
  3. 客戶端 (secret+提交內容) 進行簽名

當用戶提交信息到服務器端,首先驗證簽名數據是否被篡改,隨后通過token+隨機字符串比對,正確的話執行操作,刷新隨機字符串,即使token被中間人獲取到了,沒有隨機字符串依舊執行不了任何操作,再糟糕點中間人通過攔截響應頭獲取到了隨機字符串,但是密鑰還沒泄露,沒有辦法進行簽名依舊執行不了操作

缺點:
以上解決辦法只適用於APP端,瀏覽器端不適用,因為沒地方保存密鑰

總結:

所以能上 HTTPS 就用 HTTPS 吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM