Web應用界面許可權控制要點總結
概述
這裡所說的Web應用界面包含兩類界面:
第一類 : UI界面。
第二類 : Web API介面(介面界面一般不面向用戶,而是面向瀏覽器端代碼)。
為什麼說有這兩類界面呢? 原因很簡單:這兩類界面都對外暴露,無論是暴露給用戶還是其他代碼訪問者。
UI界面,自然不用說了,它通過瀏覽器暴露給用戶用於和系統進行人機交互,這種暴露一般也是UI界面存在原本的目的。而另外一種界面,Web API介面原本是為了瀏覽器Web邏輯進行正常的服務端數據訪問,但實際上,本系統用戶有可能通過修改輸入URL的方式試圖直接訪問一些未授權的頁面或數據,另外還有一些惡意訪問者對這些介面發起一些不懷好意的請求。所以,對於所有這些請求,我們也要做相應的驗證和許可權檢查。
要點總結
UI界面
頁面導航菜單樹 – 根據用戶許可權生成針對該用戶的頁面導航菜單樹
修改/刪除/禁用/啟用/通過/拒絕/撤銷等對某些數據實體進行修改性或者控制性操作的按鈕/鏈接
有許可權 - 展示且可用
無許可權
展示且可用 – 通過請求結果碰撞得到不可操作提示,目標操作被拒絕
展示但禁用 – 看得到但是不可操作
不展示 – 用戶看不到該操作選項
頁面跳轉按鈕/鏈接
有許可權 - 展示且可用
無許可權
展示且可用 – 通過請求結果碰壁,被提示無權訪問
展示但禁用 – 看得到但是不可點擊
不展示
頁面上許可權相關的數據展示區
有許可權 - 展示
無許可權 - 隱藏
數據列表展示
用戶對一些業務數據的可見性是受控的,比如當地業務負責人只能看到本地的業務數據,那麼上海的負責人看到北京地區的業務數據就是個錯誤。這個問題表面上看頁面數據展示問題,如果再考慮到分頁過濾等因素,後端服務邏輯在查詢相應數據時就要將用戶對業務數據的可見性考慮也進去。
Web API界面
控制器方法
需要檢查用戶身份和許可權以確保請求符合安全設定


※常用BUG解決方法
※請求分頁系統中頁面分配策略與頁面置換策略的關係
TAG:程序員小新人學習 |