文章詳情頁
java - 分布式系統中如何進行權限校驗比較好?
瀏覽:129日期: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. angular.js - Angular路由和express路由的組合使用問題2. 網絡傳輸協議 - 以下三種下載方式有什么不同?如何用python模擬下載器下載?3. java 排序的問題4. 表單提交驗證,沒反應,求老師指點5. 我的html頁面一提交,網頁便顯示出了我的php代碼,求問是什么原因?6. 如何修改phpstudy的phpmyadmin放到其他地方7. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?8. tp6表單令牌9. node.js - gulp文件監聽的問題10. php - mysql中,作為主鍵的字段,用int類型,是不是比用char類型的效率更高?
排行榜
