關於防范csrf攻擊基於token鑒權


在web開發中,之前都使用cookie + session方式來實現身份認證鑒權。但是現在前后端分離,以及終端有可能不支持cookie的情況下,一般都采用token方式。現在系統設計思路如下: 服務端會生成兩個token,一個是認證請求token(accesstoken),一個是刷新token(refreshtoken)。 accesstoken設置過期時間為兩個小時,refreshtoken設置過期時間為30天。accesstoken兩個小時到期后,客戶端會使用refreshtoken來刷新accesstoken。refreshtoken過期后,會重新登錄。 具體步驟如下: 客戶端輸入賬號登錄成功后或者微信掃描成功,服務端會自動生成accesstoken和refreshtoken返給客戶端。accesstoken是根據jwt規則生成。refreshtoken生成規規格就是:時間戳+隨機數。然后把refreshtoken作為redis的key存入redis中,aceesstoken作為value。 客戶端拿到兩個token后保存起來,每次請求帶上accesstoken。當服務端返回accesstoken錯誤時,會自動跳轉到登錄頁面。當服務端返回accesstoken過期時,使用refreshtoken去刷新accesstoken。然后在繼續拿新accesstoken請求。 現在有兩個問題: 一是,我這么設計思路是否合理,在能有效防范XSS攻擊情況下,是否能有效防范csrf等安全攻擊?還有沒有更好的方式? 二是,如果是賬號登錄,在請求體里返回兩個token,以及微信掃描登錄重定向頁面時,在URL上拼接上兩個token。這么做,是否安全?


免責聲明!

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



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