测试结论从什么结果开始
员工看不到菜单,就一定没有权限吗?首先需要把“越权拒绝,业务数据保持不变”写成可判定的结果。这里讨论的是敏感后台操作,一个需要验证的风险是只隐藏按钮而接口仍放行。仅看到页面操作顺利还不够,测试记录必须能说明业务结果是否真实发生,以及失败时是否留下了不该产生的影响。
权限测试应使用权限不同的独立账号。管理员自测无法证明普通用户安全;列表、详情、附件和导出也可能采用不同的校验路径。
复现时保留哪些证据
本题需要保存普通账号的接口和修改记录。把一次正常操作和一次异常操作放在相同版本、相同环境下比较,记录输入、操作时点及实际结果;敏感值可以替换,但触发问题的字段关系不能删掉。若无法重新出现“只隐藏按钮而接口仍放行”对应的差异,先补足样本,暂不把猜测写成已确认根因。
保留被拒绝的请求编号和服务端判定结果,确认拒绝发生在返回数据之前。把只读与修改动作分别验证。
执行三个针对性检查
第一项是用普通账号直接请求,将判定口径写清楚后执行。第二项是服务端鉴权,同时保存普通账号的接口和修改记录中的相关记录。第三项是验证没有修改,对照“越权拒绝,业务数据保持不变”逐条确认。三个检查应分别记录结果,这样失败时可以知道问题出在输入、处理中还是结果核对,避免一次修改多个环节后失去判断依据。
用边界例子发现遗漏
直接调用接口是对自身授权测试环境的检查方式。请求被拒后还应确认数据库和通知均没有副作用。
例如:旧页面保存按钮仍能发请求。这个例子不是客户项目事实,而是用于测试敏感后台操作的样本设计。先写下按业务规则应该发生什么,再执行并比较;不能用程序当前表现反过来定义正确结果。修复后还要重跑原样本,并检查附近的合法操作仍然可用。
测试账号和样本需要明确授权。不能拿真实客户的敏感资料做演示,也不能只靠隐藏按钮作为访问控制。
怎样算验收通过
验收应能够证明:越权拒绝,业务数据保持不变。结果附上环境、版本、样本和记录位置;异常提示、持久化结果与相关后续动作应互相一致。若“旧页面保存按钮仍能发请求”仍能触发错误,就应列为未解决事项,并说明影响范围。测试通过不代表以后永不出错,后续变更至少保留这一问题的回归样本。
执行与验收清单
- 明确敏感后台操作的正确结果:越权拒绝,业务数据保持不变。
- 准备并脱敏核对资料:普通账号的接口和修改记录。
- 执行用普通账号直接请求,保留对应结果。
- 完成服务端鉴权与验证没有修改,核对实际产物。
- 使用“旧页面保存按钮仍能发请求”复查问题,并记录未解决事项。