文章詳情頁
java - 分布式系統中如何進行權限校驗比較好?
瀏覽:234日期: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. boot2docker無法啟動2. docker-compose中volumes的問題3. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””4. java - SSH框架中寫分頁時service層中不能注入分頁類5. nignx - docker內nginx 80端口被占用6. docker安裝后出現Cannot connect to the Docker daemon.7. javascript - mock.js可以存儲數據嗎8. docker api 開發的端口怎么獲取?9. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?10. golang - 用IDE看docker源碼時的小問題
排行榜

網公網安備