文章詳情頁
java - 分布式系統中如何進行權限校驗比較好?
瀏覽:155日期:2023-10-21 08:07:19
問題描述
如題,在項目中,單獨有個系統作為權限系統,現在的做法是每次請求業務系統,都會在業務系統的攔截其中,把請求的URL傳過去權限系統,來做校驗,校驗發起請求的用戶是否有該權限。
或者也可以從權限系統那里獲取該用戶的所有權限到業務系統中做校驗
無論哪種做法,感覺中間都可以篡改,不感覺很不安全
想問一下在分布式系統中如果進行權限校驗比較好,謝謝前輩
問題解答
回答1:樓主的問題與權限無關,純粹是接口調用的安全性。一般做法有:
內容明文傳輸,但加上校驗碼,校驗碼由雙方約定的一個密鑰生成,篡改者無法生成正確的校驗碼。
使用約定密鑰加密解密整個傳輸內容。
回答2:登錄后請求權限系統,將返回的權限菜單等信息放入緩存(自己用Map實現或Nosql,建議Nosql集群。要注意菜單有更新,則先清空用戶的redis數據,再將最新的信息同步到redis,redis沒信息就從數據庫中?。?,再返回Java Web Token(包括時間戳、標識等)。
項目安全點就用Https,Spring-Security(訪問接口權限、防CSRF),每個接口都要驗簽,token加時間戳等。
回答3:你這個有點像OAuth2.0解決的問題
標簽:
java
上一條:java - spring-data Jpa 不需要執行save 語句,Set字段就可以自動執行保存的方法?求解下一條:java - SpringAOP如何獲得執行方法的class上的注解信息
相關文章:
1. javascript - es6擴展運算符...的問題2. python - 如何使用websocket在網頁上動態示實時數據的折線圖?3. HTML5不支持frameset一般怎么解決?4. Python處理Dict生成json5. 網頁爬蟲 - python爬蟲用BeautifulSoup爬取<s>元素并寫入字典,但某些div下沒有這一元素,導致自動寫入下一條,如何解決?6. mysql 獲取時間函數unix_timestamp 問題?7. 百度地圖api - Android百度地圖SDK,MapView上層按鈕可見卻不可觸,怎么解決?8. 新入手layuiadmin,部署到tp中。想用php自已寫一個后臺管理系統。9. javascript - Vue的計算屬性底層依賴原理是怎么樣?10. html5 - canvas中的mousedrag事件,為什么鼠標拖出canvas,然后再次移入canvas,drag事件還觸發
排行榜
