学习笔记:海外社区论坛 - 权限测试专项入门
学习记录:把海外社区论坛场景下的权限测试整理成一篇专项入门笔记,结合个人实践,并与 AI 一起补全结构,便于按角色与模块查阅。
若你在测带治理与多角色体系的论坛产品,希望这篇能当检查清单用。
适合对象:具备基础测试经验、准备系统梳理权限与越权测试思路的同学;文中不默认你已熟悉权限模型与 RBAC 术语。
阅读提示:全文按「基础概念 → 论坛角色实战 → 专项方法 → 用例与 Bug」四块展开;配合页面 TOC 或下方折叠目录跳转。第 9~25 章按角色与业务模块展开,宜对照真实权限说明逐项核对。
章节目录(共 37 章,点击展开,条目可点击跳转)
- 为什么要做权限测试专项
- 什么是权限测试
- 权限测试和普通功能测试有什么区别
- 角色、用户状态、资源归属分别是什么
- 前端权限和后端权限怎么理解
- 什么是越权
- 海外社区论坛为什么容易出现权限问题
- 权限测试前需要准备什么
- 社区论坛常见角色有哪些
- 游客权限怎么测
- 普通用户权限怎么测
- 作者和非作者权限怎么测
- 新用户、未验证用户权限怎么测
- 被禁言用户权限怎么测
- 被封禁用户权限怎么测
- 版主 Moderator 权限怎么测
- 管理员 Admin 权限怎么测
- 超级管理员 Super Admin 权限怎么测
- 用户资料与隐私权限怎么测
- 发帖、编辑、删除权限怎么测
- 评论、回复、删除评论权限怎么测
- 点赞、收藏、关注权限怎么测
- 私信、通知权限怎么测
- 举报、审核、封禁权限怎么测
- 后台管理权限怎么测
- 权限矩阵怎么写
- 接口越权怎么测
- 水平越权怎么测
- 垂直越权怎么测
- 多端权限同步怎么测
- 状态变化后的权限怎么测
- 权限与数据一致性怎么结合验证
- 权限测试如何定位问题
- 权限测试用例怎么写
- 权限类 Bug 怎么提交
- 新手常见误区
- 最后总结
第一部分:权限测试基础概念
如果你是权限测试新手,建议先完整学习这一部分。
如果你已经了解角色权限、越权测试,可以直接跳到 第二部分:海外社区论坛权限测试实战。
1. 为什么要做权限测试专项
社区论坛项目里,权限问题非常重要。
功能测试主要验证:
正常用户能不能正常使用功能 |
接口测试主要验证:
接口参数、返回、状态是否正确 |
数据一致性测试主要验证:
数据是否保存正确、展示一致 |
而权限测试重点验证:
不该做的人,能不能做不该做的事 |
权限问题一旦出现在社区论坛里,影响通常比较严重。
1.1 社区论坛常见权限事故
| 权限问题 | 可能影响 |
|---|---|
| 普通用户能删除别人的帖子 | 严重越权,破坏内容生态 |
| 普通用户能编辑别人的评论 | 数据被篡改 |
| 被禁言用户还能发帖 | 社区治理失效 |
| 被封禁用户还能登录或操作 | 封禁功能失效 |
| 游客能查看私密内容 | 隐私泄露 |
| 用户A能查看用户B私信 | 严重隐私问题 |
| 普通用户能访问管理员接口 | 后台权限失控 |
| 版主能管理非负责板块 | 管理边界错误 |
| 用户通过接口绕过前端限制 | 前端限制无效 |
这些问题有些看起来像普通功能 Bug,但本质上是权限控制问题,严重程度通常更高。
1.2 为什么权限测试要单独做
因为权限测试不是单个模块的问题,而是贯穿整个系统。
例如“删除”这个动作,很多地方都有:
- 删除帖子
- 删除评论
- 删除私信
- 删除通知
- 删除举报记录
- 删除用户资料
- 后台删除违规内容
每个删除动作都要问:
谁能删? |
所以权限测试不能只靠功能测试顺手点一下,需要单独整理专项。
2. 什么是权限测试
权限测试就是验证:
不同用户、不同角色、不同状态下,系统是否只允许用户访问和操作自己被授权的资源。
简单理解:
能做的事情,要能做 |
2.1 权限测试测什么
权限测试通常验证:
- 页面入口是否展示正确
- 按钮是否展示正确
- 接口是否真正校验权限
- 数据是否只返回有权限的数据
- 后台菜单是否按角色展示
- 用户状态变化后权限是否立即生效
- 资源归属是否校验正确
- 不同角色之间是否存在越权
2.2 权限测试不是只测按钮
新手很容易犯的错误是:
页面没有删除按钮,所以普通用户不能删除别人的帖子。 |
这是不够的。
正确做法是:
1. 页面上普通用户是否看不到删除按钮 |
权限测试必须同时看:
前端入口 + 后端接口 + 数据结果 |
3. 权限测试和普通功能测试有什么区别
| 对比项 | 普通功能测试 | 权限测试 |
|---|---|---|
| 关注对象 | 功能是否可用 | 谁可以用、谁不可以用 |
| 常见视角 | 正常用户操作 | 多角色、多状态、多资源归属 |
| 验证重点 | 流程正确、提示正确 | 访问控制、操作边界、越权风险 |
| 是否需要多账号 | 需要,但不一定很多 | 必须需要多账号、多角色 |
| 是否测接口 | 可选 | 必须测接口权限 |
| Bug 严重性 | 视功能而定 | 通常较高 |
3.1 举个例子:删除帖子
普通功能测试会测:
作者删除自己的帖子是否成功 |
权限测试还要测:
用户B能不能删除用户A的帖子? |
4. 角色、用户状态、资源归属分别是什么
权限测试中有 3 个非常重要的概念:
角色 |
4.1 角色是什么
角色表示用户在系统中的身份。
社区论坛常见角色:
| 角色 | 说明 |
|---|---|
| 游客 | 未登录用户 |
| 普通用户 | 已注册登录用户 |
| 新用户 | 刚注册,可能有功能限制 |
| 认证用户 | 完成邮箱、手机号或身份验证 |
| VIP/会员用户 | 有额外权益的用户 |
| 版主 Moderator | 管理某些板块或话题 |
| 管理员 Admin | 管理全站内容和用户 |
| 超级管理员 Super Admin | 拥有最高管理权限 |
4.2 用户状态是什么
用户状态表示用户当前是否被限制。
常见状态:
| 状态 | 说明 |
|---|---|
| 正常 | 可以正常使用 |
| 未验证邮箱 | 可能不能发帖、评论或私信 |
| 禁言 | 不能发帖或评论 |
| 临时封禁 | 一段时间内受限 |
| 永久封禁 | 长期不可使用 |
| 注销中 | 账号正在注销流程中 |
| 已注销 | 账号不可正常使用 |
| 风险账号 | 可能被限流或限制互动 |
4.3 角色和状态的区别
角色和状态不是一回事。
例如:
用户A是普通用户,但状态是禁言 |
权限判断通常同时看:
角色 + 状态 |
例如普通用户正常状态可以评论,但普通用户禁言状态不能评论。
4.4 资源归属是什么
资源归属就是:这个内容属于谁。
社区项目中的资源包括:
- 帖子
- 评论
- 私信
- 通知
- 用户资料
- 收藏记录
- 关注关系
- 举报记录
- 审核记录
例如:
帖子 P001 是用户A发布的 |
权限测试必须确认:
用户只能操作自己有权操作的资源 |
5. 前端权限和后端权限怎么理解
权限控制通常分为:
前端权限 |
5.1 前端权限
前端权限是页面层面的限制。
例如:
- 游客看不到发帖按钮
- 普通用户看不到后台入口
- 非作者看不到删除帖子按钮
- 被禁言用户评论框置灰
- 管理员后台菜单按角色展示
前端权限主要影响用户体验。
5.2 后端权限
后端权限是接口层面的限制。
例如:
- 未登录调用发帖接口返回 401
- 普通用户调用删除别人帖子接口返回 403
- 被禁言用户调用评论接口失败
- 普通用户调用管理员审核接口失败
后端权限才是真正的安全边界。
5.3 为什么后端权限更重要
因为前端按钮可以隐藏,但接口可以被直接调用。
例如:
页面没有删除按钮 |
如果后端没有限制,用户仍然可能删除别人的帖子。
所以权限测试一定要记住:
前端不展示,只是第一层 |
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 |
测试:
用户A编辑 P001 → 应成功 |
13. 新用户、未验证用户权限怎么测
海外社区常常会限制新用户或未验证用户,防止 Spam。
13.1 新用户可能有哪些限制
新用户可能被限制:
- 注册后多久才能发帖
- 每天最多发几篇帖子
- 是否能发外链
- 是否能私信陌生人
- 是否能上传图片/视频
- 是否能加入某些板块
- 是否需要完成邮箱验证
13.2 未验证用户可能有哪些限制
未验证邮箱或手机号的用户可能:
- 不能发帖
- 不能评论
- 不能私信
- 不能修改敏感资料
- 不能参与活动
- 不能使用第三方绑定功能
13.3 测试点
| 场景 | 预期 |
|---|---|
| 新用户注册后立即发帖 | 按需求允许或限制 |
| 新用户连续发帖 | 超过限制后失败 |
| 新用户发布外链 | 按需求拦截或审核 |
| 未验证邮箱用户发帖 | 按需求限制 |
| 未验证邮箱用户验证成功后发帖 | 权限恢复 |
| 未验证用户直接调用接口 | 后端同样限制 |
14. 被禁言用户权限怎么测
禁言通常表示用户不能发布互动内容,但是否能浏览,要看产品规则。
14.1 被禁言用户通常不能做什么
通常不能:
- 发帖
- 评论
- 回复
- 私信,按需求判断
- 发布带外链内容
可能仍然可以:
- 浏览帖子
- 点赞,按需求判断
- 收藏,按需求判断
- 查看通知
- 修改资料,按需求判断
14.2 测试点
| 场景 | 预期 |
|---|---|
| 被禁言用户发帖 | 失败,提示禁言 |
| 被禁言用户评论 | 失败,提示禁言 |
| 被禁言用户回复评论 | 失败 |
| 被禁言用户直接调用评论接口 | 失败 |
| 禁言到期后评论 | 成功 |
| 管理员解除禁言后发帖 | 成功 |
| 禁言期间已登录 Token 操作 | 权限应受限 |
14.3 新手容易漏的点
管理员设置禁言后,用户可能已经登录并持有 Token。
必须验证:
禁言状态是否对已登录用户立即生效 |
不能出现:
用户刷新页面前还能继续发帖 |
15. 被封禁用户权限怎么测
封禁通常比禁言更严重。
15.1 封禁后可能的产品规则
不同产品规则可能不同,需要先确认:
| 封禁规则 | 说明 |
|---|---|
| 不能登录 | 封禁用户登录失败 |
| 可以登录但不能操作 | 只能查看封禁提示 |
| 不能访问任何内容 | 访问时直接提示账号不可用 |
| 已发布内容隐藏 | 封禁后历史内容不可见,按需求判断 |
| 历史内容保留 | 仅限制用户继续操作 |
15.2 测试点
| 场景 | 预期 |
|---|---|
| 被封禁用户登录 | 按需求失败或受限 |
| 已登录用户被封禁 | 旧 Token 应失效或受限 |
| 被封禁用户发帖 | 失败 |
| 被封禁用户评论 | 失败 |
| 被封禁用户私信 | 失败 |
| 被封禁用户点赞 | 按需求限制 |
| 封禁到期后登录 | 权限恢复 |
| 管理员解封后操作 | 权限恢复 |
16. 版主 Moderator 权限怎么测
版主通常管理某些板块或话题,不一定能管理全站。
16.1 版主通常可以做什么
版主可能可以:
- 删除所负责板块的帖子
- 隐藏所负责板块的评论
- 处理所负责板块的举报
- 置顶所负责板块的帖子
- 禁言所负责板块用户,按需求判断
- 查看所负责板块审核列表
16.2 版主通常不能做什么
版主通常不能:
- 管理非负责板块内容
- 管理全站用户
- 操作管理员账号
- 修改系统配置
- 查看全站敏感数据
- 分配其他管理员权限
16.3 版主权限测试方法
准备:
版主M负责板块 A |
测试:
| 场景 | 预期 |
|---|---|
| 版主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发布帖子 |
27. 接口越权怎么测
接口越权是权限测试重点。
27.1 基本方法
1. 用用户A创建资源 |
27.2 示例:删除帖子越权
1. 用户A发布帖子 P001 |
预期:
返回无权限 |
27.3 示例:查看私信越权
1. 用户A和用户B产生私信会话 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 |
预期:
只能返回公开资料 |
29. 垂直越权怎么测
垂直越权重点是:低权限用户访问高权限功能。
29.1 常见垂直越权场景
| 场景 | 示例 |
|---|---|
| 普通用户访问后台 | 普通用户打开 /admin |
| 普通用户调用审核接口 | POST /api/admin/posts/review |
| 普通用户封禁用户 | POST /api/admin/users/ban |
| 版主操作全站内容 | 版主删除非负责板块帖子 |
| 管理员操作超级管理员 | 普通管理员修改超级管理员权限 |
29.2 测试方法
1. 用管理员账号正常操作一次,记录接口和参数 |
预期:
普通用户无权限 |
30. 多端权限同步怎么测
用户权限变化后,多端都应该同步。
30.1 常见场景
| 场景 | 测试点 |
|---|---|
| Web 已登录,App 被封禁 | App 和 Web 都应受限 |
| App 被禁言,Web 评论 | Web 也不能评论 |
| 后台修改角色 | 前台菜单和接口权限同步 |
| 用户注销账号 | 所有端登录态失效 |
| 解除封禁 | 多端权限恢复 |
30.2 示例:禁言多端同步
步骤:
1. 用户A同时登录 App 和 Web |
预期:
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 |
操作步骤
1. 用户B登录,获取 userB_token |
实际结果
接口返回删除成功 |
预期结果
用户B不是帖子作者,也不是管理员,不应删除用户A的帖子。 |
严重程度
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 是否还能继续操作非常关键。
一定要测:
状态变化前已登录 |
37. 最后总结
权限测试的核心不是“页面有没有按钮”,而是要理解:
谁在操作? |
对于海外社区论坛项目,权限测试最重要的几个方向是:
- 游客权限
- 普通用户权限
- 作者和非作者权限
- 禁言和封禁状态
- 版主板块边界
- 管理员后台权限
- 用户隐私数据权限
- 私信和通知权限
- 举报、审核、封禁权限
- 接口越权
- 多端权限同步
- 旧 Token 权限失效
你可以记住一个万能权限测试公式:
角色 + 状态 + 资源归属 + 操作动作 = 是否允许 |
例如:
普通用户B + 正常状态 + 用户A的帖子 + 删除 = 不允许 |
只要你每次测试权限时都按这个公式去拆,权限测试思路就会越来越清晰。








