app后端session共享問題


在分布式中,session如何共享,用戶登陸要解決的問題如下圖所示,通過nignx請求轉發,到不同的應用模塊中,需要判斷用戶有沒有登陸驗證通過,問題又來了,app的移動端不像瀏覽器,沒有cookie,session,那么怎么搞呢?這時可以使用session外置方式解決,用redis統一管理session,用redis來模擬session。瀏覽器的session都是有狀態的,但是移動端的session都是無狀態的,不創建session,我們通過用戶登陸時生成一個token(session) ,token存在redis設置超時,用戶每次請求都帶着token到服務端做校驗,token代表唯一用戶,如何保密?

解決的辦法就是登陸獲取token的時候,傳輸的時候要加密,那用什么加密呢?MD5是一種數字簽名,不可逆的,明顯行不通,因為沒辦法反解密。那么如果用對稱加密算法AES呢?,AES優點在於效率高,這樣就安全了嗎?明顯不可以,因為網絡傳輸的時候你加密的key是可以被人截獲破解的,安全性依賴於key。那么試想如果用非對稱加密RSA呢,用公鑰+明文加密=密文。傳輸給服務端,服務端保存着非對稱的私鑰,用私鑰+密文=明文,就算被截獲了公鑰,也沒用,因為沒有私鑰,私鑰保存在服務端,這固然已經事很高的安全性了,但是又面臨有個問題,這種加密方式效率性極差。這固然不行的,但是如果通過非對稱RSA公鑰加密對稱加密AES的key,再用RSA的私鑰解密AES的key,再用得到的key,進行對稱解密。這樣問題,引刃而解了。而且最后那種方案的公鑰和私鑰都是動態的生成的。這已經安全性很高了。要破解,成本已經很高了。

 

 


免責聲明!

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



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