跳到正文
教程31 篇

测试与交付第 2 / 3 篇

上线前先做这张双账号权限检查表

用 A、B 两个测试身份核对列表、详情和写入,识别“登录了就能访问一切”。

进阶约 20 分钟练习资料核实

学习目标

一张权限矩阵和仅限自己测试环境的验证记录。

适用场景

虚构资料夹要求收藏私有。登录检查只能证明有身份,不能证明某条记录属于该身份。本篇限定测试你拥有或获准测试的系统,不扫描第三方站点。

准备条件

  • 独立测试环境、匿名状态,以及 A/B 两个由你控制的测试账号。
  • 各创建一条无敏感内容的测试记录,明确产品本来允许公开的内容。

操作步骤

  1. 先定义公开与私有的数据边界

    不是所有跨用户可见都叫越权。先确认哪类记录公开、哪类仅本人可见、管理员有什么权限。对于私有收藏,列表、详情、导出和修改要沿用同一规则;不要只修一个页面入口。

    本练习的私有记录矩阵
    身份          读取自己的记录  读取B的私有记录  修改B的私有记录
    A             允许            拒绝             拒绝
    B             允许B自己的     允许             允许
    匿名          拒绝            拒绝             拒绝
    补充:公开内容、共享链接、管理员必须另行定义,不照抄此矩阵。
  2. 在服务端逐请求核对对象归属

    UI 不展示他人的按钮不构成访问控制。服务端应依据可信身份约束数据查询和写入,不能相信请求里自报的 userId;对象 ID 难猜也不能替代权限校验。拒绝状态码沿用项目约定,避免多泄露对象是否存在。

  3. 在自己的环境交换测试记录标识

    用 A 的会话请求 B 的测试记录,分别检查详情、列表筛选、更新、删除与导出等实际存在的入口。记录响应与数据副作用:收到 403/404 仍需确认没有发生写入。删除验证仅使用可丢弃的测试记录。

    一条测试记录格式
    环境与版本:待填写
    请求主体:测试账号 A
    对象:测试账号 B 的可丢弃记录
    入口:填写实际接口,不编造 URL
    预期:按矩阵拒绝,记录内容未改变
    实际响应:未运行
    副作用检查:未运行
    清理:测试结束后回收两账号的夹具数据;保留脱敏结果
  4. 把发现的漏点变成同层回归

    找到漏检入口后,先补同层的接口回归,再修归属约束;同时查同类读写和后台任务是否共享规则。浏览器测试负责体验,接口测试负责数据边界;一张截图不能证明所有入口都正确。

常见误区

把身份验证成功当作对象访问授权。
每次访问具体资源都按产品规则检查权限。
复制真实用户数据来测试跨账号。
只用自己控制的测试身份和可删除夹具,不接触第三方私有数据。

验收清单

  • 矩阵包含匿名、本人和其他测试身份。
  • 检查实际读写与导出入口,不仅是按钮。
  • 拒绝请求没有产生数据变更。
  • 修复后有同层回归,敏感凭证未写入记录。

资料与版本

本文为原创方法整理,示例与提示词需按项目调整;不代表真实用户研究或账号执行结果。