返回业务与用例设计模块
Business Testing / Tutorial 07

权限、数据隔离与访问审计测试教程

从用户页面一直测到接口、数据范围和运维入口,验证任何身份对任何资源都只能做被授权的事,并留下可追溯证据。

01

权限测试要同时验证功能与数据

能做什么 × 能看什么

授权模型

维度问题例子
身份认证你是谁登录用户、Token、设备会话
功能权限能做什么菜单、查询、编辑、审核、导出
数据权限能操作哪些记录集团、本级及以下、本级、个人
资源归属这条数据属于谁机构、部门、个人、租户
审计约束谁在何时做了什么操作日志、审批、会话录像
页面上看不到按钮,不等于没有权限。真正的授权判断必须在服务端对功能、数据归属和当前身份一起完成。
02

菜单、按钮、URL、接口四层都要测

隐藏不是拒绝

四层防线

入口有权用户无权用户
菜单可见并可进入不可见
按钮可见且操作成功不可见或禁用
URL 直达页面正常加载拒绝访问且不泄露内容
接口直调按授权范围返回或写入返回拒绝结果且业务不生效

固定测试动作

  • 先用有权账号完成一次,记录 URL、接口和资源 ID。
  • 切换无权账号,不经过页面直接访问相同入口。
  • 分别修改角色、机构、资源 ID 和操作参数。
  • 同时断言响应状态、响应内容和业务是否真正生效。
03

把角色与数据归属画成矩阵

每条数据对号入座

常见数据范围

角色范围应可见不应可见
集团全集团授权数据明确排除的敏感域
本级及以下本机构和下级机构上级与平级机构
本级本机构上级、下级与平级
个人本人数据任何其他用户数据

每个矩阵格至少验证

  • 列表是否出现。
  • 详情是否可打开且字段完整。
  • 编辑、删除、审批是否可执行。
  • 统计和金额合计是否只计算授权范围。
  • 导出文件是否与页面范围一致。
04

水平越权与垂直越权必须分别验证

拒绝且零泄露

两类越权

类型动作典型风险
水平越权同级用户替换资源 ID 访问他人记录个人或机构数据泄露
垂直越权低权限用户直调管理员接口执行审核、删除或配置操作
跨租户越权替换 tenant_id 或关联键租户隔离失效

双重判据

  • 访问被拒绝:按产品约定返回 403、404 或统一错误。
  • 内容不泄露:响应体、文件名、数量、金额和状态都不包含目标资源信息。
  • 操作不生效:数据库、消息、审计日志中没有越权产生的业务结果。
只断言状态码不够。有的接口返回错误提示,却已经写入数据库;有的接口拒绝页面访问,却在响应体里带回完整业务数据。
05

权限变更后要验证生效时机

不要自己猜时限

变更场景

场景要核对的会话
移除功能权限当前会话、刷新后、重新登录后
改变数据范围列表、详情、接口缓存与导出
删除角色关联用户旧 Token 是否仍可用
禁用用户当前会话何时失效,其他设备如何处理
退出登录当前设备失效,其他设备按需求处理
立即生效、重新登录生效还是 Token 到期生效,必须依据需求或安全策略。需求未定义时列为待确认,不在用例中臆造“5 分钟后”。
06

附件、导出与统计同样受权限控制

隐蔽泄露点

高风险资源

资源测试重点
附件直链替换文件 ID、复制 URL、Token 失效后访问
批量导出导出范围、字段脱敏、任务下载权限
统计报表数量与金额只计算授权数据
搜索联想不可通过关键词探测无权记录
错误提示不暴露资源是否存在、真实路径和内部标识

用例标题示例

当个人数据范围用户替换导出任务 ID 下载他人文件时,系统拒绝下载且不返回文件名、大小或临时地址。

07

把运维访问也纳入授权与审计

统一入口与留痕

访问控制链路

个人身份一人一账号
访问审批服务器与时段
代理登录不直接暴露密码
操作留痕命令与会话记录
高危拦截确认或拒绝

堡垒机解决的边界

堡垒机主要治理内部运维访问:统一入口、个人身份、最小权限、会话审计和高危操作拦截。它不替代 WAF、漏洞修复或抗 DDoS,测试时要区分内部访问治理与外部攻击防护。

访问审计测试

检查预期
未授权服务器资产列表不可见,直连被网络策略阻断
授权过期审批时段外无法建立会话
高危命令按策略拦截、二次审批或完整告警
审计回放能关联个人、目标、时间、输入和结果
账号离职个人入口及时停用,目标密码无需散发
08

用清点、结对、断言生成权限用例

矩阵化设计

访问控制链路

清点入口菜单/URL/接口/文件
准备身份有权/无权/跨域
准备数据本人/下级/平级/他人
执行断言状态/内容/业务结果

优先级判断

  • P0/P1:越权访问、数据隔离、敏感字段与高危操作。
  • P1:权限变更残留、导出范围与统计泄露。
  • P2:低风险入口展示、多设备体验;仍按真实业务影响调整。
  • 优先级来源于损失和暴露面,不按用例复杂度决定。
09

为一个业务模块完成权限验收

练习与检查清单

练习

  1. 列出一个业务模块的菜单、按钮、URL、接口、附件和导出入口。
  2. 准备有权、无权、同级他人和跨机构账号与数据。
  3. 画出角色 × 数据归属 × 操作矩阵。
  4. 执行水平、垂直和跨租户越权,并核对数据库结果。
  5. 修改角色和用户状态,验证当前会话与重新登录后的差异。
  6. 若项目使用堡垒机,验证审批、会话审计与高危命令策略。

完成检查

四层入口全部覆盖
列表详情操作分别断言
拒绝时零内容泄露
越权操作未写入业务结果
权限生效时机有需求依据
导出统计遵守数据范围
运维访问可关联到个人