Java后端API調用身份驗證的思考


      在如今信息泛濫的數字時代中對產品安全性的要求越來越高了,就比如說今天要討論的Java后端API調用的安全性,在你提供服務的接口中一定要保證調用方身份的有效性和合法性,不能讓非法的用戶進行調用,避免數據泄露。那如何有效地進行身份驗證呢?你會立馬想法采用攔截器,沒錯,采用攔截器是肯定的,但是如何校驗呢?也許你又會說拿調用方的相關參數去認證中心進行驗證,驗證通過了就說明是合法用戶,可放行;驗證失敗的話那就是非法用戶了,必須要攔截在安全門之外;沒錯,思路是這樣的,但是同一個用戶在一段時間內反復調用接口的話,若每次都要去認證中心對該用戶驗證,那么會增加認證中心的負擔,並且還有可能會造成對認證中心的惡意攻擊;那么我們該如何處理才比較合適呢?此時就需要緩存技術了,在攔截器中利用本地緩存可以提高對同一用戶的驗證速度。可以參考以下幾種,但不限於它們,還有其它的方案。

  • HashMap:它可以很好地保證用戶的合法性,但在處理有效性時可能就需要自己去實現邏輯代碼了,比如用戶信息存在緩存中的有效時長為30分鍾,等有效時長過期后就需要從HashMap對象中刪除還用戶的信息。
  • Redis緩存:比較流行的緩存解決方案,暫時還沒應用到,慚愧😂
  • Cache緩存:Google的Cache緩存技術,它是一種很好地的本地緩存技術解決方案。

       目前,在攔截器中使用了Cache技術進行身份驗證,可以很好地支撐目前的業務需求。Cache緩存利用主鍵值key的唯一性來判斷本地緩存中用戶信息,每次新的key都會有與之對應的value值,並且會將這對新的key-value保存在緩存中,我們可以從value中判斷用戶是否合法,這樣就保證了用戶的合法性;此外,這種緩存技術還可以設置對key保存的有效時長,有效時長過期后相應的key-value對會從緩存中被刪除,這樣就保證了用戶的有效性。

 

------20200103閃🚶


免責聲明!

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



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