02 · ACCESS CONTROLP013 MIN
菜单、按钮、API 与数据权限
区分体验层隐藏与服务端真正授权,理解 Data Scope 的位置。
MENTAL MODELPERMISSION LAYERS
01路由可见
→02按钮可见
→03API 动作允许
→04查询 Data Scope
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
Menu Permission
控制导航是否展示某模块,帮助用户减少无关入口。
Button Permission
控制界面是否展示编辑、审批、导出等动作。
API Permission
服务端对每个动作做不可绕过的授权判断。
Data Scope
限制主体能访问的数据集合,例如本人、门店、经销商或整个制造商网络。
Dealer A 猜 ID 看到 Dealer B 订单
菜单和列表都过滤了数据,但 GET /orders/:id 只检查 order:read 权限。
- 01
加载资源时同时限定 tenant/data scope。
- 02
无权访问返回 404,避免泄露存在性。
- 03
增加跨租户 IDOR 集成测试。
列表与详情使用同一授权边界,猜 ID 不再越权。
马上动手
- 为导出订单分别写 UI、API 与数据范围判断。
- 检查批量接口是否逐项验证范围。
常见坑
- 只做前端动态路由
- 详情接口漏掉 data scope
- 批量导出复用管理员查询
05 · KNOWLEDGE CHECK为什么 ERP 不能只做前端菜单权限?查看答案⌄
答案
前端由用户控制且请求可直接构造;只有服务端动作权限与数据范围过滤能保护真实资源。