先看结论
- 01菜单不可见不等于接口无权限
- 02角色权限与数据范围分开定义
- 03关键操作需要日志和二次确认
- 04使用真实业务场景做越权测试
先把权限验收从菜单检查升级为完整控制
很多系统验收只确认不同账号看到的菜单是否不同,但隐藏按钮只是界面表现。用户仍可能直接访问URL、修改请求参数或调用接口;如果服务端没有再次鉴权,就可能读取或修改不属于自己的数据。
完整权限应同时覆盖身份、角色、功能动作、数据范围、业务状态和审计记录。验收用例既要证明允许的操作能完成,也要证明禁止的操作在页面、接口和导出等入口都被拒绝。
- 登录身份
- 角色与功能
- 数据可见范围
- 业务状态限制
- 日志与追责
建立角色与动作矩阵
列出员工、主管、财务、管理员和外部客户等实际角色,再按查看、新增、修改、删除、导出、审核、退款和配置等动作标记允许、禁止或有条件允许。不要只写“管理员权限”“普通用户权限”这种无法验收的概括。
同一角色在不同业务状态下也可能不同。例如草稿允许编辑,已审核记录只能查看,作废需要主管批准。矩阵要写清前置条件和例外情况,并由业务负责人确认,而不是开发人员自行猜测。
- 角色及职责
- 页面与功能动作
- 允许和禁止
- 审批及状态条件
- 临时与例外权限
把数据范围作为独立维度
两个角色可以使用同一查询功能,但一个只能看到本人数据,另一个可以看到本部门或指定区域。数据范围要在列表、详情、搜索、统计、导出和接口中保持一致,不能列表隐藏后仍能通过详情地址打开。
还要确定敏感字段是否需要脱敏,例如手机号、身份证、成本和客户资料。拥有记录查看权不一定等于拥有全部字段查看权,批量导出权限也应比单条查看更严格。
- 本人和本人创建的数据
- 部门、区域与项目数据
- 全部数据
- 字段级脱敏
- 查询详情统计与导出一致
准备可重复的测试账号和样本数据
每个角色至少准备一个固定测试账号,并建立属于不同人员、部门和状态的样本记录。测试数据应能区分允许与禁止场景,避免所有账号恰好属于同一部门而漏掉越权问题。
验收前记录账号、角色、组织关系和预期结果。测试环境不要使用真实敏感数据;如果必须在生产环境抽查,应限制操作范围,并清理测试记录。
- 角色测试账号
- 跨人员与跨部门样本
- 不同业务状态
- 预期结果
- 测试数据清理
测试绕过页面后的服务端权限
验收人员应尝试直接访问无权限URL、修改记录ID和组织参数、重复提交请求、调用接口以及查看其他用户数据。服务端必须根据当前身份和目标对象重新判断,而不能相信前端传来的角色或部门字段。
被拒绝时应返回明确但不过度泄露信息的结果,并确保数据没有发生变化。登录过期、账号停用和权限刚被收回后,也要验证旧页面或旧令牌不能继续操作。
- 直接URL访问
- 接口和参数篡改
- 跨用户跨部门数据
- 过期会话与停用账号
- 拒绝后的数据完整性
重点检查高风险与批量操作
删除、退款、付款、批量导出、权限调整和系统配置通常需要更严格的授权。可根据风险增加二次确认、审批、金额阈值或双人复核,并避免普通管理员同时拥有业务审批和日志删除能力。
批量操作不能只测试成功路径,还要确认部分失败、重复执行和中途取消时的数据状态。文件导出应记录发起人、筛选范围和结果,下载链接设置有效期,防止长期公开。
- 删除与资金操作
- 批量导入导出
- 权限和系统配置
- 二次确认与审批
- 失败回滚和下载有效期
验证审计日志能够还原关键事件
日志至少记录人员、时间、对象、动作、结果和必要的变更前后值。只记录“操作成功”而没有对象与字段,出现争议时无法定位;普通业务用户也不应修改或删除审计记录。
验收时选取新增、修改、审核、导出和权限调整等操作,从业务页面反查日志,再从日志定位原对象。日志访问本身也要授权,并按合规和业务要求设置保留期限。
- 操作者与时间
- 业务对象和动作
- 变更前后值
- 成功失败原因
- 日志权限与保留期
用签字清单完成交付和后续变更
最终验收表按角色列出允许用例、禁止用例、数据范围、测试结果、问题编号和复测结论。尚未修复的风险必须明确影响和处理计划,不能用口头承诺替代关闭记录。
上线后新增部门、角色和功能时,应走权限变更流程,评估是否扩大数据范围,并回归测试相关接口。定期清理离职、停用和长期不用账号,检查临时权限是否按期收回。
- 允许与拒绝用例
- 问题及复测证据
- 业务负责人确认
- 权限变更记录
- 账号与临时授权复核
常见问题
01管理员是不是应该拥有全部权限?+
不一定。系统配置、财务审批、敏感数据和审计职责可以分离,避免一个账号既操作业务又能删除全部记录。
02前端按钮已经隐藏,还需要测试接口吗?+
必须测试。真正的权限边界应由服务端执行,直接URL、接口请求和参数修改都应得到一致的授权判断。
03权限验收只测试禁止操作可以吗?+
不可以。既要证明越权操作被拒绝,也要证明合法角色在正确数据和业务状态下能够顺利完成工作。
04数据导出权限为什么要单独验收?+
批量导出会一次性暴露大量信息,风险高于逐条查看,应检查筛选范围、脱敏、审批、日志和下载有效期。
05系统上线后可以继续调整权限吗?+
可以,但新增角色、组织变化和临时授权应走变更流程,记录批准人并回归测试相关页面与接口。