我正在嘗試考慮不同的方法來解決這個問題。一種方法是......假設我們得到一個令牌,該令牌聲稱用戶登錄時回傳的角色。對于這個虛構的應用程式,我們有 3 個角色,超級、管理員、訪客。
令牌在角色屬性中回傳一個字串值,例如,role: "admin"
在應用程式中,我們構建了兩個函式,一個 routeBuilder 和一個 navItemBuilder,以構建我們在角色字串中傳遞的這些物件,例如“admin”
然后應用程式根據用戶的角色呈現正確的路線和可用的選單項。例如,“guest”只能訪問關于頁面和新聞..但超級也可以獲得另一個導航專案,稱為個人資料或類似的東西......
但是,如果我隨后使用反應開發工具并編輯令牌角色宣告,我可以使應用程式重新呈現新的導航路線。我可以更改令牌物件角色字串,然后當它更新時 routeBuilder 和 navItemBuilder 將根據我想要的任何字串構建新路由。
如何在我的應用程式中構建角色并避免此安全問題?
uj5u.com熱心網友回復:
應用程式本身不應內置任何敏感內容。
在服務器級別應用安全性。
例如,用戶是否可以顯示 Admin 路由的 UI 并不重要。
當他們的瀏覽器從服務器請求填充資料所需的資料時,服務器應該執行 AuthZ 并回傳錯誤,而不是(例如)可以管理的用戶串列。
然后,您的客戶端代碼可以處理錯誤,因此如果用戶意外到達那里(例如,如果他們是有效用戶但他們的會話已過期),他們可以被轉移到登錄螢屏或給出有用的錯誤訊息。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/440678.html
標籤:javascript 反应 安全 msal
上一篇:JuiceFS v1.0 beta2 發布|進一步提升穩定性
下一篇:HSTS預載含義
