84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
如題,在專案中,單獨有個系統當作權限系統,現在的做法是每次請求業務系統,都會在業務系統的攔截其中,把請求的URL傳過去權限系統,來做校驗,校驗發起請求的使用者是否有該權限。
或也可以從權限系統取得該使用者的所有權限到業務系統中做校驗
無論哪種做法,感覺中間都可以被竄改,不覺得很不安全
想問在分散式系統中如果進行權限校驗比較好,謝謝前輩
Following the voice in heart.
樓主的問題與權限無關,純粹是介面呼叫的安全性。一般做法有:
內容明文傳輸,但加上校驗碼,校驗碼由雙方約定的一個密鑰生成,篡改者無法產生正確的校驗碼。
使用約定密鑰加密解密整個傳輸內容。
登入後請求權限系統,將傳回的權限選單等資訊放入快取(自己用Map實作或Nosql,建議Nosql集群。要注意選單有更新,則先清空使用者的redis數據,再將最新的資訊同步到redis,redis沒資訊就從資料庫取),再回傳Java Web Token(包含時間戳記、識別碼等)。
專案安全點就用Https,Spring-Security(存取介面權限、防CSRF),每個介面都要驗簽,token加時間戳等。
你這個有點像OAuth2.0解決的問題
樓主的問題與權限無關,純粹是介面呼叫的安全性。一般做法有:
內容明文傳輸,但加上校驗碼,校驗碼由雙方約定的一個密鑰生成,篡改者無法產生正確的校驗碼。
使用約定密鑰加密解密整個傳輸內容。
登入後請求權限系統,將傳回的權限選單等資訊放入快取(自己用Map實作或Nosql,建議Nosql集群。要注意選單有更新,則先清空使用者的redis數據,再將最新的資訊同步到redis,redis沒資訊就從資料庫取),再回傳Java Web Token(包含時間戳記、識別碼等)。
專案安全點就用Https,Spring-Security(存取介面權限、防CSRF),每個介面都要驗簽,token加時間戳等。
你這個有點像OAuth2.0解決的問題