1. 授权访问控制测试概述
授权访问控制测试是验证系统是否按照既定权限策略正确限制用户对资源、功能与数据的访问能力的过程。其核心在于检查是否存在绕过授权机制的路径,确保“用户只能访问被明确许可的内容”。本章从测试目标、测试范围、常见漏洞类型及测试角色与职责四个维度建立整体认知框架,为后续SOP流程提供基础。
1.1 测试目标
授权访问控制测试的首要目标是确认系统权限策略的实现不存在可被利用的绕过点。具体目标包括:
- 验证权限矩阵完整性 —— 确保每个用户角色只能访问已授权的资源与操作。
- 检出越权路径 —— 发现因会话管理缺陷、参数篡改或逻辑遗漏导致的水平/垂直越权。
- 确认最小权限原则落地 —— 默认拒绝、显式授权,不存在冗余权限或隐藏入口。
- 建立可复测基线 —— 输出可量化的权限校验用例,支撑回归测试与合规审计。
验收标准对照:测试完成后应形成“权限覆盖矩阵”,标记每个角色-资源-操作的测试结果,
所有高/中危越权缺陷必须清零,低危缺陷需经风险评估后确认接受或修复。
所有高/中危越权缺陷必须清零,低危缺陷需经风险评估后确认接受或修复。
1.2 测试范围
测试范围界定是SOP流程的输入边界,必须在测试启动前与项目方书面确认。范围覆盖以下维度:
| 维度 | 覆盖内容 | 典型排除项 |
|---|---|---|
| 功能模块 | 用户管理、角色配置、数据查看/编辑/删除、审批流程、文件下载 | 第三方SDK内部逻辑、底层基础设施 |
| API端点 | RESTful API、GraphQL、gRPC、WebSocket消息 | 内部健康检查接口、静态资源CDN |
| 数据对象 | 用户个人信息、订单记录、财务数据、文档附件 | 脱敏后的聚合统计数据 |
| 身份上下文 | 普通用户、管理员、只读审计员、第三方集成账号 | 匿名访客(若无需认证) |
范围确认后应形成《授权测试范围基线表》,作为后续用例设计与缺陷定级的依据。
1.3 常见漏洞类型
授权缺陷在OWASP Top 10中持续位居高位,以下是在实际案例中最高频出现的三类:
- 水平越权 (Horizontal Privilege Escalation) —— 用户A访问同级别用户B的资源,例如普通员工查看其他员工的工资单。通常通过可预测的ID、UUID或会话令牌复用实现。
- 垂直越权 (Vertical Privilege Escalation) —— 低权限用户执行高权限操作,例如普通用户调用管理员接口删除用户。常见于前后端分离架构中后端未校验角色标识。
- 不安全的直接对象引用 (IDOR) —— 直接通过参数(如
?user_id=1001)访问未授权的数据对象,是水平越权的典型实现方式。
常见误解:并非所有IDOR都等同于越权。如果资源本身就是公开的或无需认证,则不属于授权缺陷。测试前必须确认资源的“预期可见性”边界。
1.4 测试角色与职责
授权访问控制测试涉及多个角色,清晰的责任边界是流程SOP顺利执行的保障。下表定义各角色的核心职责:
| 角色 | 职责范围 | 交付物 / 记录 |
|---|---|---|
| 测试工程师 | 设计越权测试用例、执行测试、记录缺陷、复测验证 | 测试用例集、缺陷报告、复测记录 |
| 开发人员 | 提供权限配置说明、修复缺陷、配合搭建多角色测试账号 | 权限矩阵文档、修复确认单 |
| 安全审计员 | 审核测试方案完整性、抽查高风险用例、评估缺陷风险等级 | 审计意见书、风险评估表 |
| 项目经理 | 确认测试范围、协调资源、审批缺陷修复优先级 | 范围基线表、修复计划、验收签字 |
测试启动前应由项目经理组织角色确认会议,签署《授权测试责任矩阵》,避免后续推诿或范围蔓延。