Visual LabINTERACTIVE LEARNING
02 · ACCESS CONTROLP013 MIN

菜单、按钮、API 与数据权限

区分体验层隐藏与服务端真正授权,理解 Data Scope 的位置。

MENTAL MODELPERMISSION LAYERS
01路由可见
02按钮可见
03API 动作允许
04查询 Data Scope
前端权限改善体验,API 权限保护动作,数据权限限制资源集合;三层缺一不可。
01 · CONCEPTS & BOUNDARIES

先把概念与边界说清楚

定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。

01

Menu Permission

控制导航是否展示某模块,帮助用户减少无关入口。

02

Button Permission

控制界面是否展示编辑、审批、导出等动作。

03

API Permission

服务端对每个动作做不可绕过的授权判断。

04

Data Scope

限制主体能访问的数据集合,例如本人、门店、经销商或整个制造商网络。

02 · BLIND BOTS CASE

Dealer A 猜 ID 看到 Dealer B 订单

问题现场

菜单和列表都过滤了数据,但 GET /orders/:id 只检查 order:read 权限。

  1. 01

    加载资源时同时限定 tenant/data scope。

  2. 02

    无权访问返回 404,避免泄露存在性。

  3. 03

    增加跨租户 IDOR 集成测试。

得到什么

列表与详情使用同一授权边界,猜 ID 不再越权。

03 · PRACTICE

马上动手

  1. 为导出订单分别写 UI、API 与数据范围判断。
  2. 检查批量接口是否逐项验证范围。
04 · PITFALLS

常见坑

  • 只做前端动态路由
  • 详情接口漏掉 data scope
  • 批量导出复用管理员查询
05 · KNOWLEDGE CHECK为什么 ERP 不能只做前端菜单权限?查看答案⌄
答案

前端由用户控制且请求可直接构造;只有服务端动作权限与数据范围过滤能保护真实资源。