测评样例:安全项
从安全类测评点里抽的七条,末尾附性能一条。这类用例的共同点是:不看接口报什么错,只看有没有拿到不该拿的数据、写操作有没有真的生效。
1这一页管什么
管越权与数据泄露类测评点的写法。
- 管安全类测评点。令牌、账号可枚举性、垂直与水平越权、注入、附件归属、权限字段被客户端改写。
- 不交由这一页。密钥的存放与轮换、依赖漏洞扫描写在安全开发规范页;性能阈值的整体口径写在部署运维规范页。
- 落法。这类用例必须常驻——写进规则,不允许「本次变更不涉及安全」就整组跳过。
对应的课程知识点:最小权限、完全中介(每次访问都要判定)、失效安全、纵深防御。SC18 对应的是「不要相信客户端传来的身份」——权限只能由服务端按会话重新算出,不能采信请求体里的字段。
2七条安全测评点与性能一条
编号沿用样例原文,便于与原始验收表对照。
| 编号 | 测评点 | 怎么测 → 判缺陷 |
|---|---|---|
| SC01 | 无令牌、过期令牌、伪造令牌 | 三种情形都要按约定拒绝且不返回业务数据;白名单接口不得把合法请求误拒 |
| SC05 | 登录失败不能看出账号是否存在 | 分别用不存在的账号与存在的账号配错误口令登录;两次的错误码、提示文案与响应结构须一致 → 能区分即为缺陷 |
| SC07 | 垂直越权;一人多岗切换身份 | 低权限账号调用高权限接口;切换到无此权限的身份后再调用 → 按「被放行」判:拿到数据或写操作已生效 |
| SC08 | 水平越权 | 替换他人资源标识,或换账号后用原链接直接取详情 → 仍有数据即为缺陷 |
| SC10 | 注入 | 在参数里放入片段或延时函数 → 结果被改写、出现明显延迟,或因注入变成未处理故障 |
| SC13 | 附件归属 | 无令牌或他人账号下载、删除;标识加减一得到他人文件;预览、缩略图、替换用他人资源 → 按「被放行」判 |
| SC18 | 多传权限字段 | 在合法请求上额外带上 role、isAdmin、orgId 一类字段;保存后查库,当前账号的角色、是否管理员、所属机构须保持原值 → 任一被改成请求中的新值即为缺陷 |
| PF01 | 正向用例响应时长 | 每条正向用例记录端到端耗时 → 超过 50 ms 标记(不算不通过),超过 100 ms 判不通过;阈值按项目自定,此处为示例值。只考核正向用例 |
3安全用例的四条底线
下列四件完成,安全类用例才算站得住。
- 越权用例成对出现。每个读接口都要有一条「他人账号访问」与一条「未登录访问」,缺一即为覆盖不全。
- 只看数据,不看提示。判据是「拿到没有」「生效没有」,不是「提示文案是否友好」。
- 权限字段一律不采信。请求体里出现角色、管理员标记、所属机构一类字段,服务端必须按会话重新取值。
- 失败响应也要检查。错误明细文件、导出文件里不得出现数据范围之外的记录。
这一组用例的价值在于可复现:换一个人、换一台机器跑出来应当是同一组结论。判定口径在前一页,两页要一起读。