学习记录:把海外社区论坛场景下的权限测试整理成一篇专项入门笔记,结合个人实践,并与 AI 一起补全结构,便于按角色与模块查阅。

若你在测带治理与多角色体系的论坛产品,希望这篇能当检查清单用。

适合对象:具备基础测试经验、准备系统梳理权限与越权测试思路的同学;文中不默认你已熟悉权限模型与 RBAC 术语。


阅读提示:全文按「基础概念 → 论坛角色实战 → 专项方法 → 用例与 Bug」四块展开;配合页面 TOC 或下方折叠目录跳转。第 9~25 章按角色与业务模块展开,宜对照真实权限说明逐项核对。

章节目录(共 37 章,点击展开,条目可点击跳转)
  1. 为什么要做权限测试专项
  2. 什么是权限测试
  3. 权限测试和普通功能测试有什么区别
  4. 角色、用户状态、资源归属分别是什么
  5. 前端权限和后端权限怎么理解
  6. 什么是越权
  7. 海外社区论坛为什么容易出现权限问题
  8. 权限测试前需要准备什么
  9. 社区论坛常见角色有哪些
  10. 游客权限怎么测
  11. 普通用户权限怎么测
  12. 作者和非作者权限怎么测
  13. 新用户、未验证用户权限怎么测
  14. 被禁言用户权限怎么测
  15. 被封禁用户权限怎么测
  16. 版主 Moderator 权限怎么测
  17. 管理员 Admin 权限怎么测
  18. 超级管理员 Super Admin 权限怎么测
  19. 用户资料与隐私权限怎么测
  20. 发帖、编辑、删除权限怎么测
  21. 评论、回复、删除评论权限怎么测
  22. 点赞、收藏、关注权限怎么测
  23. 私信、通知权限怎么测
  24. 举报、审核、封禁权限怎么测
  25. 后台管理权限怎么测
  26. 权限矩阵怎么写
  27. 接口越权怎么测
  28. 水平越权怎么测
  29. 垂直越权怎么测
  30. 多端权限同步怎么测
  31. 状态变化后的权限怎么测
  32. 权限与数据一致性怎么结合验证
  33. 权限测试如何定位问题
  34. 权限测试用例怎么写
  35. 权限类 Bug 怎么提交
  36. 新手常见误区
  37. 最后总结

第一部分:权限测试基础概念

如果你是权限测试新手,建议先完整学习这一部分。

如果你已经了解角色权限、越权测试,可以直接跳到 第二部分:海外社区论坛权限测试实战


1. 为什么要做权限测试专项

社区论坛项目里,权限问题非常重要。

功能测试主要验证:

正常用户能不能正常使用功能

接口测试主要验证:

接口参数、返回、状态是否正确

数据一致性测试主要验证:

数据是否保存正确、展示一致

而权限测试重点验证:

不该做的人,能不能做不该做的事
不该看的数据,能不能被看到
不该访问的接口,能不能被访问

权限问题一旦出现在社区论坛里,影响通常比较严重。


1.1 社区论坛常见权限事故

权限问题 可能影响
普通用户能删除别人的帖子 严重越权,破坏内容生态
普通用户能编辑别人的评论 数据被篡改
被禁言用户还能发帖 社区治理失效
被封禁用户还能登录或操作 封禁功能失效
游客能查看私密内容 隐私泄露
用户A能查看用户B私信 严重隐私问题
普通用户能访问管理员接口 后台权限失控
版主能管理非负责板块 管理边界错误
用户通过接口绕过前端限制 前端限制无效

这些问题有些看起来像普通功能 Bug,但本质上是权限控制问题,严重程度通常更高。


1.2 为什么权限测试要单独做

因为权限测试不是单个模块的问题,而是贯穿整个系统。

例如“删除”这个动作,很多地方都有:

  • 删除帖子
  • 删除评论
  • 删除私信
  • 删除通知
  • 删除举报记录
  • 删除用户资料
  • 后台删除违规内容

每个删除动作都要问:

谁能删?
谁不能删?
删自己的可以吗?
删别人的可以吗?
管理员可以吗?
版主可以吗?
封禁用户还能删吗?
接口直接调用会怎样?

所以权限测试不能只靠功能测试顺手点一下,需要单独整理专项。


2. 什么是权限测试

权限测试就是验证:

不同用户、不同角色、不同状态下,系统是否只允许用户访问和操作自己被授权的资源。

简单理解:

能做的事情,要能做
不能做的事情,必须不能做
能看的数据,可以看
不能看的数据,必须看不到

2.1 权限测试测什么

权限测试通常验证:

  • 页面入口是否展示正确
  • 按钮是否展示正确
  • 接口是否真正校验权限
  • 数据是否只返回有权限的数据
  • 后台菜单是否按角色展示
  • 用户状态变化后权限是否立即生效
  • 资源归属是否校验正确
  • 不同角色之间是否存在越权

2.2 权限测试不是只测按钮

新手很容易犯的错误是:

页面没有删除按钮,所以普通用户不能删除别人的帖子。

这是不够的。

正确做法是:

1. 页面上普通用户是否看不到删除按钮
2. 普通用户直接调用删除接口是否失败
3. 删除失败后帖子是否仍然存在
4. 后台是否没有生成错误的删除记录

权限测试必须同时看:

前端入口 + 后端接口 + 数据结果

3. 权限测试和普通功能测试有什么区别

对比项 普通功能测试 权限测试
关注对象 功能是否可用 谁可以用、谁不可以用
常见视角 正常用户操作 多角色、多状态、多资源归属
验证重点 流程正确、提示正确 访问控制、操作边界、越权风险
是否需要多账号 需要,但不一定很多 必须需要多账号、多角色
是否测接口 可选 必须测接口权限
Bug 严重性 视功能而定 通常较高

3.1 举个例子:删除帖子

普通功能测试会测:

作者删除自己的帖子是否成功
删除后页面是否提示成功
删除后帖子是否不展示

权限测试还要测:

用户B能不能删除用户A的帖子?
游客能不能删除帖子?
被封禁用户能不能删除自己的帖子?
版主能不能删除非负责板块帖子?
普通用户直接调用删除接口会怎样?
管理员删除后是否有操作日志?

4. 角色、用户状态、资源归属分别是什么

权限测试中有 3 个非常重要的概念:

角色
用户状态
资源归属

4.1 角色是什么

角色表示用户在系统中的身份。

社区论坛常见角色:

角色 说明
游客 未登录用户
普通用户 已注册登录用户
新用户 刚注册,可能有功能限制
认证用户 完成邮箱、手机号或身份验证
VIP/会员用户 有额外权益的用户
版主 Moderator 管理某些板块或话题
管理员 Admin 管理全站内容和用户
超级管理员 Super Admin 拥有最高管理权限

4.2 用户状态是什么

用户状态表示用户当前是否被限制。

常见状态:

状态 说明
正常 可以正常使用
未验证邮箱 可能不能发帖、评论或私信
禁言 不能发帖或评论
临时封禁 一段时间内受限
永久封禁 长期不可使用
注销中 账号正在注销流程中
已注销 账号不可正常使用
风险账号 可能被限流或限制互动

4.3 角色和状态的区别

角色和状态不是一回事。

例如:

用户A是普通用户,但状态是禁言
用户B是版主,但状态是正常
用户C是管理员,但状态可能被冻结

权限判断通常同时看:

角色 + 状态

例如普通用户正常状态可以评论,但普通用户禁言状态不能评论。


4.4 资源归属是什么

资源归属就是:这个内容属于谁。

社区项目中的资源包括:

  • 帖子
  • 评论
  • 私信
  • 通知
  • 用户资料
  • 收藏记录
  • 关注关系
  • 举报记录
  • 审核记录

例如:

帖子 P001 是用户A发布的
评论 C001 是用户B发布的
私信 M001 是用户A发给用户B的
通知 N001 属于用户C

权限测试必须确认:

用户只能操作自己有权操作的资源
不能操作别人的私有资源

5. 前端权限和后端权限怎么理解

权限控制通常分为:

前端权限
后端权限

5.1 前端权限

前端权限是页面层面的限制。

例如:

  • 游客看不到发帖按钮
  • 普通用户看不到后台入口
  • 非作者看不到删除帖子按钮
  • 被禁言用户评论框置灰
  • 管理员后台菜单按角色展示

前端权限主要影响用户体验。


5.2 后端权限

后端权限是接口层面的限制。

例如:

  • 未登录调用发帖接口返回 401
  • 普通用户调用删除别人帖子接口返回 403
  • 被禁言用户调用评论接口失败
  • 普通用户调用管理员审核接口失败

后端权限才是真正的安全边界。


5.3 为什么后端权限更重要

因为前端按钮可以隐藏,但接口可以被直接调用。

例如:

页面没有删除按钮
但用户知道 DELETE /api/posts/1001

如果后端没有限制,用户仍然可能删除别人的帖子。

所以权限测试一定要记住:

前端不展示,只是第一层
后端不允许,才是真的权限控制

6. 什么是越权

越权就是用户做了自己不应该做的事情,或访问了自己不应该访问的数据。

越权通常分为:

水平越权
垂直越权

6.1 水平越权

水平越权是指:

同等级用户之间,用户A操作了用户B的数据。

例如:

  • 用户A查看用户B的私信
  • 用户A删除用户B的帖子
  • 用户A修改用户B的资料
  • 用户A标记用户B的通知为已读

他们都是普通用户,但用户A不应该操作用户B的数据。


6.2 垂直越权

垂直越权是指:

低权限用户操作了高权限功能。

例如:

  • 普通用户访问管理员后台
  • 普通用户调用审核接口
  • 普通用户封禁别人
  • 版主管理非负责板块
  • 普通管理员操作超级管理员

6.3 越权测试为什么重要

越权问题通常很严重,因为它可能导致:

  • 用户隐私泄露
  • 内容被恶意删除
  • 管理功能被滥用
  • 社区秩序被破坏
  • 合规风险增加

7. 海外社区论坛为什么容易出现权限问题

海外社区论坛权限复杂,主要因为它有很多角色、很多状态、很多内容治理功能。


7.1 用户类型多

社区可能同时存在:

  • 游客
  • 新用户
  • 普通用户
  • 认证用户
  • VIP 用户
  • 风险用户
  • 被禁言用户
  • 被封禁用户
  • 版主
  • 管理员

每类用户能做的事情都不完全一样。


7.2 内容状态多

内容也有不同状态:

  • 草稿
  • 审核中
  • 已发布
  • 审核失败
  • 已隐藏
  • 已删除
  • 仅自己可见
  • 仅粉丝可见

不同状态下,不同用户可见性不同。


7.3 治理功能多

社区有很多治理动作:

  • 举报
  • 删除
  • 隐藏
  • 禁言
  • 封禁
  • 审核通过
  • 审核拒绝
  • 申诉
  • 拉黑
  • 屏蔽

这些动作本身都需要权限控制。


7.4 海外隐私和合规风险更高

海外社区通常更重视:

  • 账号注销
  • 隐私设置
  • 私信权限
  • 数据导出
  • 用户屏蔽
  • 未成年人限制
  • Cookie 和追踪授权

这些功能如果权限控制不好,可能造成隐私或合规问题。


8. 权限测试前需要准备什么


8.1 准备角色账号

至少准备这些账号:

账号 用途
游客 未登录状态测试
普通用户A 创建资源,例如发帖、评论
普通用户B 测试访问用户A资源、越权
新注册用户 测试新用户限制
未验证邮箱用户 测试验证前限制
被禁言用户 测试发帖、评论限制
被封禁用户 测试登录、访问、互动限制
版主账号 测试板块管理权限
管理员账号 测试后台管理权限
超级管理员账号 测试最高权限和管理员管理

8.2 准备资源数据

需要准备:

  • 用户A发布的帖子
  • 用户B发布的帖子
  • 用户A的评论
  • 用户B的评论
  • 用户A的私信
  • 用户B的通知
  • 审核中帖子
  • 已删除帖子
  • 被隐藏帖子
  • 不同板块的帖子
  • 不同状态用户

8.3 准备接口和后台入口

权限测试需要同时验证:

  • 前台页面
  • 接口请求
  • 后台管理系统
  • 数据库或日志,按权限判断

需要准备:

  • 接口文档
  • Postman/Apifox 请求集合
  • 不同账号 Token
  • 后台账号
  • 测试环境地址
  • 操作日志查看方式,按权限判断

第二部分:海外社区论坛权限测试实战

这一部分开始进入项目实战。

测权限时,你可以先按“角色”测,再按“模块”测。角色维度能保证不同身份不漏,模块维度能保证业务功能不漏。


9. 社区论坛常见角色有哪些

海外社区论坛常见角色如下。

角色 典型权限
游客 浏览公开内容,不能发帖、评论、点赞、私信
普通用户 发帖、评论、点赞、收藏、关注、举报
新用户 可能限制发帖频率、私信、外链发布
未验证用户 可能限制发帖、评论、私信或修改资料
认证用户 拥有完整普通用户权限
VIP/会员用户 可能有专属标识、更多上传额度或特殊板块权限
版主 管理指定板块内容和用户互动
管理员 管理全站内容、用户、举报、审核
超级管理员 管理管理员、系统配置和最高权限操作

测试时要注意:

角色只是一个维度
用户状态也是一个维度
资源归属也是一个维度

例如:正常普通用户和被禁言普通用户,权限是不一样的。


10. 游客权限怎么测

游客是未登录用户。


10.1 游客通常可以做什么

按产品规则,游客可能可以:

  • 浏览公开 Feed
  • 查看公开帖子详情
  • 查看公开评论
  • 查看公开用户主页
  • 搜索公开内容
  • 查看社区规则
  • 打开注册/登录页

10.2 游客通常不能做什么

游客通常不能:

  • 发帖
  • 评论
  • 回复
  • 点赞
  • 收藏
  • 关注
  • 私信
  • 举报,部分产品可能允许游客举报
  • 查看私密内容
  • 访问个人中心
  • 访问后台

10.3 游客权限测试点

场景 预期
游客点击发帖 跳转登录页或提示登录
游客点击评论 提示登录
游客点赞帖子 提示登录,不改变点赞数
游客收藏帖子 提示登录,不生成收藏记录
游客访问个人中心 跳转登录
游客访问公开帖子 可以查看,按产品规则
游客访问审核中帖子 不可查看
游客访问已删除帖子 提示内容不存在
游客直接调用发帖接口 返回未登录
游客直接调用管理员接口 返回未登录或无权限

10.4 新手容易漏的点

游客权限不能只测页面按钮,还要测接口。

例如:

页面点击点赞提示登录
但直接调用点赞接口,可能仍然点赞成功

这就是权限漏洞。


11. 普通用户权限怎么测

普通用户是社区最主要的用户群体。


11.1 普通用户通常可以做什么

普通用户通常可以:

  • 发帖
  • 编辑自己的帖子
  • 删除自己的帖子,按需求判断
  • 评论
  • 删除自己的评论
  • 点赞
  • 收藏
  • 关注
  • 私信,按隐私设置判断
  • 举报内容
  • 修改自己的资料
  • 查看自己的通知

11.2 普通用户不能做什么

普通用户通常不能:

  • 编辑别人的帖子
  • 删除别人的帖子
  • 删除别人的评论
  • 查看别人的私信
  • 查看别人的通知列表
  • 修改别人的资料
  • 访问管理员后台
  • 调用审核接口
  • 封禁用户
  • 修改系统配置

11.3 普通用户权限测试点

场景 预期
用户A发帖 成功
用户A编辑自己的帖子 成功
用户A编辑用户B帖子 失败
用户A删除用户B帖子 失败
用户A查看用户B公开主页 成功
用户A查看用户B私信 失败
用户A修改用户B资料 失败
用户A访问后台 失败
用户A调用审核接口 失败

12. 作者和非作者权限怎么测

社区内容通常有“作者”和“非作者”的权限差异。


12.1 作者通常有什么权限

作者通常可以:

  • 编辑自己的帖子
  • 删除自己的帖子,按需求判断
  • 查看自己帖子审核状态
  • 查看自己帖子被拒原因,按需求判断
  • 删除自己评论
  • 管理自己草稿

12.2 非作者通常不能做什么

非作者通常不能:

  • 编辑别人的帖子
  • 删除别人的帖子
  • 修改别人的媒体内容
  • 查看别人草稿
  • 查看别人审核失败原因,按需求判断

12.3 作者/非作者测试方法

准备数据:

用户A发布帖子 P001
用户B登录

测试:

用户A编辑 P001 → 应成功
用户B编辑 P001 → 应失败
用户A删除 P001 → 按需求成功
用户B删除 P001 → 应失败
用户B直接调用编辑/删除接口 → 应失败

13. 新用户、未验证用户权限怎么测

海外社区常常会限制新用户或未验证用户,防止 Spam。


13.1 新用户可能有哪些限制

新用户可能被限制:

  • 注册后多久才能发帖
  • 每天最多发几篇帖子
  • 是否能发外链
  • 是否能私信陌生人
  • 是否能上传图片/视频
  • 是否能加入某些板块
  • 是否需要完成邮箱验证

13.2 未验证用户可能有哪些限制

未验证邮箱或手机号的用户可能:

  • 不能发帖
  • 不能评论
  • 不能私信
  • 不能修改敏感资料
  • 不能参与活动
  • 不能使用第三方绑定功能

13.3 测试点

场景 预期
新用户注册后立即发帖 按需求允许或限制
新用户连续发帖 超过限制后失败
新用户发布外链 按需求拦截或审核
未验证邮箱用户发帖 按需求限制
未验证邮箱用户验证成功后发帖 权限恢复
未验证用户直接调用接口 后端同样限制

14. 被禁言用户权限怎么测

禁言通常表示用户不能发布互动内容,但是否能浏览,要看产品规则。


14.1 被禁言用户通常不能做什么

通常不能:

  • 发帖
  • 评论
  • 回复
  • 私信,按需求判断
  • 发布带外链内容

可能仍然可以:

  • 浏览帖子
  • 点赞,按需求判断
  • 收藏,按需求判断
  • 查看通知
  • 修改资料,按需求判断

14.2 测试点

场景 预期
被禁言用户发帖 失败,提示禁言
被禁言用户评论 失败,提示禁言
被禁言用户回复评论 失败
被禁言用户直接调用评论接口 失败
禁言到期后评论 成功
管理员解除禁言后发帖 成功
禁言期间已登录 Token 操作 权限应受限

14.3 新手容易漏的点

管理员设置禁言后,用户可能已经登录并持有 Token。

必须验证:

禁言状态是否对已登录用户立即生效

不能出现:

用户刷新页面前还能继续发帖
用户用旧 Token 调接口还能评论

15. 被封禁用户权限怎么测

封禁通常比禁言更严重。


15.1 封禁后可能的产品规则

不同产品规则可能不同,需要先确认:

封禁规则 说明
不能登录 封禁用户登录失败
可以登录但不能操作 只能查看封禁提示
不能访问任何内容 访问时直接提示账号不可用
已发布内容隐藏 封禁后历史内容不可见,按需求判断
历史内容保留 仅限制用户继续操作

15.2 测试点

场景 预期
被封禁用户登录 按需求失败或受限
已登录用户被封禁 旧 Token 应失效或受限
被封禁用户发帖 失败
被封禁用户评论 失败
被封禁用户私信 失败
被封禁用户点赞 按需求限制
封禁到期后登录 权限恢复
管理员解封后操作 权限恢复

16. 版主 Moderator 权限怎么测

版主通常管理某些板块或话题,不一定能管理全站。


16.1 版主通常可以做什么

版主可能可以:

  • 删除所负责板块的帖子
  • 隐藏所负责板块的评论
  • 处理所负责板块的举报
  • 置顶所负责板块的帖子
  • 禁言所负责板块用户,按需求判断
  • 查看所负责板块审核列表

16.2 版主通常不能做什么

版主通常不能:

  • 管理非负责板块内容
  • 管理全站用户
  • 操作管理员账号
  • 修改系统配置
  • 查看全站敏感数据
  • 分配其他管理员权限

16.3 版主权限测试方法

准备:

版主M负责板块 A
用户A在板块 A 发帖
用户B在板块 B 发帖

测试:

场景 预期
版主M删除板块A帖子 成功
版主M删除板块B帖子 失败
版主M处理板块A举报 成功
版主M处理板块B举报 失败
版主M访问全站用户管理 失败
版主M调用非负责板块接口 失败

17. 管理员 Admin 权限怎么测

管理员通常有较高权限,但不一定拥有最高权限。


17.1 管理员通常可以做什么

管理员可能可以:

  • 审核帖子
  • 删除帖子
  • 隐藏评论
  • 处理举报
  • 禁言用户
  • 封禁用户
  • 查看用户列表
  • 查看内容管理后台
  • 查看操作日志

17.2 管理员可能不能做什么

普通管理员可能不能:

  • 删除超级管理员
  • 修改超级管理员权限
  • 修改核心系统配置
  • 查看敏感财务或支付数据,按需求判断
  • 分配高级管理员权限,按需求判断

17.3 管理员权限测试点

场景 预期
管理员审核帖子 成功
管理员删除违规帖子 成功
管理员禁言普通用户 成功
管理员封禁普通用户 成功
管理员操作超级管理员 失败或受限
管理员修改系统配置 按需求判断
管理员操作后生成日志 应记录操作人、时间、对象、动作

18. 超级管理员 Super Admin 权限怎么测

超级管理员通常拥有最高权限,但也要测试边界和安全保护。


18.1 超级管理员通常可以做什么

  • 管理管理员账号
  • 分配角色权限
  • 修改系统配置
  • 查看全站操作日志
  • 管理全站内容
  • 管理全站用户

18.2 超级管理员也需要限制什么

即使是超级管理员,也要关注:

  • 高危操作是否需要二次确认
  • 删除管理员是否有保护机制
  • 修改权限是否记录日志
  • 是否不能删除自己,按需求判断
  • 是否有操作审计

19. 用户资料与隐私权限怎么测

用户资料和隐私是海外项目的重要风险点。


19.1 公开资料和私密资料

用户资料可能分为:

类型 示例
公开资料 昵称、头像、简介、公开帖子
半公开资料 关注列表、粉丝列表,按隐私设置
私密资料 邮箱、手机号、登录设备、私信、通知

19.2 测试点

场景 预期
用户A查看用户B公开主页 成功
用户A查看用户B邮箱 失败
用户A查看用户B手机号 失败
用户A修改用户B资料 失败
用户A查看用户B私信 失败
用户A查看用户B通知 失败
用户B设置关注列表私密 用户A不可见,按需求判断
用户注销后资料展示 匿名化或不可见,按需求判断

20. 发帖、编辑、删除权限怎么测


20.1 发帖权限

需要验证:

  • 游客不能发帖
  • 普通用户可以发帖
  • 未验证用户按需求限制
  • 被禁言用户不能发帖
  • 被封禁用户不能发帖
  • 无板块权限用户不能在受限板块发帖
  • 新用户发帖频率受限,按需求判断

20.2 编辑权限

需要验证:

  • 作者可以编辑自己的帖子
  • 非作者不能编辑别人的帖子
  • 被删除帖子不能编辑
  • 审核中帖子是否可编辑,按需求判断
  • 审核失败帖子是否可编辑重提,按需求判断
  • 管理员是否可以编辑或仅能隐藏,按需求判断

20.3 删除权限

需要验证:

  • 作者删除自己的帖子,按需求判断
  • 非作者不能删除别人帖子
  • 版主只能删除负责板块帖子
  • 管理员可以删除违规帖子
  • 被封禁用户是否能删除自己的历史帖子,按需求判断
  • 删除后权限状态同步到列表、详情、搜索、收藏、通知

21. 评论、回复、删除评论权限怎么测


21.1 评论权限

需要验证:

  • 游客不能评论
  • 普通用户可以评论
  • 被禁言用户不能评论
  • 被封禁用户不能评论
  • 已删除帖子不能评论
  • 审核失败帖子不能评论
  • 被拉黑用户是否能评论对方帖子,按需求判断

21.2 删除评论权限

需要验证:

  • 评论作者可以删除自己的评论
  • 普通用户不能删除别人评论
  • 帖子作者是否能删除帖子下评论,按需求判断
  • 版主可以删除负责板块评论
  • 管理员可以删除评论
  • 删除后评论数和通知状态正确

22. 点赞、收藏、关注权限怎么测

这些互动功能看似简单,但也需要权限控制。


22.1 点赞权限

测试点:

  • 游客不能点赞
  • 普通用户可以点赞
  • 被封禁用户是否能点赞,按需求判断
  • 已删除帖子不能点赞
  • 审核失败帖子不能点赞
  • 被屏蔽内容不能点赞

22.2 收藏权限

测试点:

  • 游客不能收藏
  • 普通用户可以收藏
  • 已删除帖子不能收藏
  • 私密帖子是否能收藏,按需求判断
  • 取消收藏只能操作自己的收藏记录

22.3 关注权限

测试点:

  • 游客不能关注
  • 普通用户可以关注
  • 不能关注自己
  • 被拉黑后是否能关注,按需求判断
  • 已注销用户是否能被关注,按需求判断
  • 取消关注只能取消自己的关注关系

23. 私信、通知权限怎么测

私信和通知涉及用户隐私,权限要求更高。


23.1 私信权限

需要验证:

  • 游客不能发私信
  • 普通用户可以私信,按隐私设置判断
  • 被封禁用户不能私信
  • 被拉黑用户不能私信
  • 陌生人是否能私信,按用户隐私设置判断
  • 用户A不能查看用户B和用户C之间的私信
  • 用户A不能删除用户B的会话

23.2 通知权限

需要验证:

  • 用户只能查看自己的通知
  • 用户只能标记自己的通知已读
  • 用户不能删除别人的通知
  • 管理员是否能查看用户通知,按需求和隐私规则判断
  • 通知点击后,目标资源权限仍需校验

例如:

用户收到一个帖子通知
后来帖子被删除
点击通知时,不应绕过删除状态继续看到内容

24. 举报、审核、封禁权限怎么测


24.1 举报权限

需要验证:

  • 普通用户可以举报帖子、评论、用户
  • 游客是否可以举报,按需求判断
  • 被封禁用户是否可以举报,按需求判断
  • 用户不能处理自己的举报记录
  • 举报记录只能后台有权限人员查看

24.2 审核权限

需要验证:

  • 普通用户不能审核内容
  • 版主只能审核负责板块内容,按需求判断
  • 管理员可以审核全站内容
  • 审核操作必须记录日志
  • 审核后前台展示权限同步变化

24.3 封禁权限

需要验证:

  • 普通用户不能封禁别人
  • 版主是否能禁言用户,按需求判断
  • 管理员可以封禁普通用户
  • 管理员不能封禁超级管理员,按需求判断
  • 封禁后目标用户权限立即变化
  • 解封后权限恢复

25. 后台管理权限怎么测

后台权限比前台更敏感。


25.1 后台菜单权限

需要验证:

  • 普通用户不能进入后台
  • 版主只能看到负责板块相关菜单
  • 管理员看到管理菜单
  • 超级管理员看到系统配置和权限管理菜单
  • 直接访问后台 URL 是否仍校验权限

25.2 后台接口权限

后台页面隐藏菜单不够,还要测接口。

测试点:

  • 普通用户调用后台接口失败
  • 版主调用非负责板块接口失败
  • 管理员调用超级管理员接口失败
  • 未登录调用后台接口失败
  • Token 过期后后台接口失败

25.3 操作日志权限

后台高危操作要有日志。

需要验证日志记录:

  • 操作人
  • 操作时间
  • 操作对象
  • 操作类型
  • 操作前状态
  • 操作后状态
  • 操作原因,按需求判断

第三部分:权限专项测试方法

这一部分不是某一个具体模块,而是一套可以复用的权限测试方法。

当你遇到“谁能不能做这件事”的问题,都可以回到这一部分找思路。


26. 权限矩阵怎么写

权限矩阵是权限测试最重要的工具之一。

它可以帮助你清楚列出:

不同角色,对不同功能,到底允许还是禁止

26.1 权限矩阵示例

功能/角色 游客 普通用户 作者 被禁言用户 版主 管理员
查看公开帖子 允许 允许 允许 允许 允许 允许
发帖 禁止 允许 允许 禁止 允许 允许
评论 禁止 允许 允许 禁止 允许 允许
编辑自己的帖子 禁止 允许 允许 按需求 允许 允许
编辑别人帖子 禁止 禁止 禁止 禁止 按板块 按需求
删除自己的帖子 禁止 按需求 按需求 按需求 允许 允许
删除别人帖子 禁止 禁止 禁止 禁止 按板块 允许
审核内容 禁止 禁止 禁止 禁止 按板块 允许
封禁用户 禁止 禁止 禁止 禁止 按需求 允许

26.2 权限矩阵怎么用

拿到需求后,先整理矩阵。

然后每一格都可以转成测试点。

例如:

普通用户 + 删除别人帖子 = 禁止

就可以写成用例:

用户A发布帖子
用户B调用删除接口
预期删除失败,帖子仍存在

27. 接口越权怎么测

接口越权是权限测试重点。


27.1 基本方法

1. 用用户A创建资源
2. 记录资源 ID
3. 用用户B登录
4. 用用户B Token 操作用户A资源
5. 查看接口返回和数据结果

27.2 示例:删除帖子越权

1. 用户A发布帖子 P001
2. 用户B登录,获取 Token
3. 用户B 调用 DELETE /api/posts/P001
4. 查看接口返回
5. 查询帖子 P001 是否还存在

预期:

返回无权限
帖子仍然存在

27.3 示例:查看私信越权

1. 用户A和用户B产生私信会话 C001
2. 用户C登录
3. 用户C 调用获取会话 C001 消息列表接口

预期:

用户C无权查看该会话
接口返回无权限或资源不存在
不能返回消息内容

28. 水平越权怎么测

水平越权重点是:同角色之间的数据隔离。


28.1 常见水平越权场景

场景 示例
修改别人资料 用户A修改用户B昵称
删除别人内容 用户A删除用户B帖子
查看别人私信 用户A查看用户B会话
操作别人通知 用户A标记用户B通知已读
操作别人收藏 用户A取消用户B收藏
查看别人草稿 用户A查看用户B草稿

28.2 测试方法

水平越权最常见方法是替换资源 ID。

例如:

用户A请求自己的资料接口:/api/users/A/profile
把 A 改成 B
用用户A Token 请求 /api/users/B/private-profile

预期:

只能返回公开资料
不能返回邮箱、手机号、私密设置等敏感信息

29. 垂直越权怎么测

垂直越权重点是:低权限用户访问高权限功能。


29.1 常见垂直越权场景

场景 示例
普通用户访问后台 普通用户打开 /admin
普通用户调用审核接口 POST /api/admin/posts/review
普通用户封禁用户 POST /api/admin/users/ban
版主操作全站内容 版主删除非负责板块帖子
管理员操作超级管理员 普通管理员修改超级管理员权限

29.2 测试方法

1. 用管理员账号正常操作一次,记录接口和参数
2. 换成普通用户 Token
3. 重新调用同一个接口
4. 查看是否失败

预期:

普通用户无权限
接口不能执行实际操作
后台数据不应变化

30. 多端权限同步怎么测

用户权限变化后,多端都应该同步。


30.1 常见场景

场景 测试点
Web 已登录,App 被封禁 App 和 Web 都应受限
App 被禁言,Web 评论 Web 也不能评论
后台修改角色 前台菜单和接口权限同步
用户注销账号 所有端登录态失效
解除封禁 多端权限恢复

30.2 示例:禁言多端同步

步骤:

1. 用户A同时登录 App 和 Web
2. 管理员后台禁言用户A
3. 用户A在 App 尝试评论
4. 用户A在 Web 尝试评论
5. 用户A直接调用评论接口

预期:

App、Web、接口均评论失败
提示禁言或账号受限

31. 状态变化后的权限怎么测

权限不是固定的,用户状态变化后权限也要变化。


31.1 常见状态变化

  • 正常 → 禁言
  • 禁言 → 正常
  • 正常 → 封禁
  • 封禁 → 解封
  • 未验证 → 已验证
  • 普通用户 → 版主
  • 版主 → 普通用户
  • 管理员 → 普通用户
  • 注销中 → 已注销

31.2 测试重点

每次状态变化后都要验证:

  • 页面入口是否变化
  • 按钮是否置灰或隐藏
  • 接口是否真正限制
  • 已登录 Token 是否仍有效
  • 多端是否同步
  • 历史数据是否按规则展示

32. 权限与数据一致性怎么结合验证

权限测试不能只看接口返回,还要看数据是否真的没变。


32.1 示例:越权删除失败后要查数据

用户B越权删除用户A帖子,接口返回失败后,还要验证:

  • 帖子详情仍可访问
  • Feed 仍展示该帖子
  • 数据库状态没有变成 deleted
  • 没有生成错误删除日志

32.2 示例:封禁后数据状态

用户被封禁后,要验证:

  • 不能继续发帖
  • 不能继续评论
  • 历史帖子是否展示,按需求判断
  • 历史评论是否展示,按需求判断
  • 关注关系是否保留,按需求判断
  • 私信是否可见,按需求判断

33. 权限测试如何定位问题

权限问题可以按这几个层次定位。


33.1 定位思路

页面入口是否错误?
接口是否允许了错误操作?
用户角色是否判断错误?
用户状态是否没有同步?
资源归属是否没有校验?
后台权限配置是否错误?
缓存中权限是否是旧数据?

33.2 简单判断方法

现象 可能原因
页面显示了不该显示的按钮,但接口失败 前端权限展示问题
页面隐藏按钮,但接口成功 后端权限漏洞
只有某个端权限错误 多端权限同步或前端判断问题
状态修改后旧 Token 还能操作 后端没有实时校验用户状态
版主能操作其他板块 资源范围校验错误
用户A能操作用户B数据 资源归属校验错误

第四部分:用例、Bug 与总结

权限测试用例一定要写清楚:谁操作、操作谁的资源、预期允许还是禁止。


34. 权限测试用例怎么写

权限测试用例建议包含:

  • 用例编号
  • 模块
  • 操作角色
  • 目标资源归属
  • 用户状态
  • 前置条件
  • 操作步骤
  • 预期结果
  • 是否验证接口
  • 是否验证数据
  • 优先级

34.1 用例模板

字段 示例
用例编号 AUTH_POST_001
模块 帖子
用例标题 普通用户不能删除别人的帖子
操作角色 普通用户B
目标资源归属 用户A的帖子 P001
用户状态 用户B正常
前置条件 用户A已发布帖子 P001,用户B已登录
操作步骤 用户B调用删除帖子接口删除 P001
预期结果 删除失败,返回无权限,P001 仍然存在
是否验证接口
是否验证数据
优先级 P0

34.2 示例用例:被禁言用户不能评论

字段 内容
用例编号 AUTH_COMMENT_001
模块 评论
用例标题 被禁言用户不能发表评论
操作角色 普通用户A
用户状态 已禁言
目标资源 正常公开帖子 P001
前置条件 管理员已将用户A设置为禁言
操作步骤 用户A在页面发表评论,并直接调用评论接口
预期结果 页面评论失败;接口返回账号受限;评论列表不新增评论;评论数不增加
优先级 P0

34.3 示例用例:版主不能管理非负责板块

字段 内容
用例编号 AUTH_MOD_001
模块 版主管理
用例标题 版主不能删除非负责板块帖子
操作角色 版主M
目标资源 板块B的帖子 P002
前置条件 版主M只负责板块A;用户B在板块B发布帖子P002
操作步骤 版主M调用删除帖子接口删除P002
预期结果 删除失败,返回无权限;P002仍然存在;后台不生成有效删除记录
优先级 P0

35. 权限类 Bug 怎么提交

权限类 Bug 一定要写清楚:

哪个角色
在什么状态下
操作了谁的资源
实际发生了什么越权结果

35.1 权限类 Bug 应包含

  • Bug 标题
  • 测试环境
  • 操作账号
  • 操作账号角色
  • 操作账号状态
  • 目标资源 ID
  • 目标资源归属
  • 操作方式:页面或接口
  • 请求信息,如果是接口
  • 实际结果
  • 预期结果
  • 数据是否发生变化
  • 严重程度

35.2 示例 Bug:普通用户删除别人帖子成功

标题

[权限漏洞] 普通用户可通过删除接口删除其他用户帖子

测试环境

Test 环境

前置条件

用户A发布帖子 P001
用户B为普通用户,账号状态正常

操作步骤

1. 用户B登录,获取 userB_token
2. 用户B 调用删除帖子接口:DELETE /api/posts/P001
3. 查看接口返回
4. 使用用户A查询帖子详情

实际结果

接口返回删除成功
帖子 P001 已不可访问
Feed 中该帖子消失

预期结果

用户B不是帖子作者,也不是管理员,不应删除用户A的帖子。
接口应返回无权限,帖子 P001 应保持正常状态。

严重程度

Critical

原因:普通用户可删除他人内容,属于严重越权问题。


35.3 示例 Bug:禁言状态未对旧 Token 生效

标题

[权限问题] 用户被禁言后仍可使用旧 Token 调用评论接口成功

实际结果

管理员后台禁言用户A后,用户A在页面评论入口已置灰,但使用禁言前获取的 Token 调用评论接口仍返回成功,评论列表新增评论。

预期结果

禁言状态应对已登录 Token 立即生效。用户A调用评论接口应失败,评论列表不应新增数据。

严重程度

Critical

原因:可绕过前端限制,导致禁言功能失效。


36. 新手常见误区

36.1 只看按钮是否隐藏

错误做法:

页面没有按钮,所以权限没问题。

正确做法:

还要直接调接口,验证后端是否真正限制。


36.2 只测一个账号

权限测试必须多账号。

至少要有:

  • 用户A:资源拥有者
  • 用户B:非资源拥有者
  • 管理员:高权限用户
  • 受限用户:禁言或封禁状态

36.3 不验证数据是否变化

接口返回失败后,也要确认数据没有被错误修改。

例如删除失败后,要确认帖子仍然存在。


36.4 不区分角色和状态

普通用户和被禁言普通用户不是同一种权限。

管理员和被停用管理员也不是同一种权限。


36.5 忽略旧 Token

用户被封禁、禁言、降级后,旧 Token 是否还能继续操作非常关键。

一定要测:

状态变化前已登录
状态变化后继续用旧 Token 操作

37. 最后总结

权限测试的核心不是“页面有没有按钮”,而是要理解:

谁在操作?
他的角色是什么?
他的状态是什么?
他操作的是谁的资源?
这个操作应该允许还是禁止?
前端有没有限制?
后端接口有没有限制?
数据有没有被错误修改?
多端和旧 Token 是否同步生效?

对于海外社区论坛项目,权限测试最重要的几个方向是:

  • 游客权限
  • 普通用户权限
  • 作者和非作者权限
  • 禁言和封禁状态
  • 版主板块边界
  • 管理员后台权限
  • 用户隐私数据权限
  • 私信和通知权限
  • 举报、审核、封禁权限
  • 接口越权
  • 多端权限同步
  • 旧 Token 权限失效

你可以记住一个万能权限测试公式:

角色 + 状态 + 资源归属 + 操作动作 = 是否允许

例如:

普通用户B + 正常状态 + 用户A的帖子 + 删除 = 不允许
作者用户A + 正常状态 + 自己的帖子 + 编辑 = 允许
版主M + 正常状态 + 非负责板块帖子 + 删除 = 不允许
被禁言用户 + 禁言状态 + 任意帖子 + 评论 = 不允许

只要你每次测试权限时都按这个公式去拆,权限测试思路就会越来越清晰。