学习笔记:海外社区论坛 - 安全测试入门
学习记录:把海外社区论坛场景下的安全测试整理成一篇入门笔记,结合个人实践,并与 AI 一起补全结构,便于按模块与方法查阅。
若你在测开放注册、UGC、私信与后台共存的社区产品,希望这篇能当检查清单用。
适合对象:准备在授权环境下系统梳理安全测试思路的同学;文中不默认你已熟悉渗透工具链或深层攻防细节。
阅读提示:全文按「基础概念 → 论坛安全实战 → 专项方法 → 用例与 Bug」四块展开;配合页面 TOC 或下方折叠目录跳转。第 10~20 章对应注册登录、资料、发帖评论、多媒体与后台等主链路,宜对照账号角色与接口逐项核对。
章节目录(共 35 章,点击展开,条目可点击跳转)
- 为什么海外社区论坛要做安全测试
- 什么是安全测试
- 安全测试和功能测试有什么区别
- 安全测试的边界和注意事项
- 社区论坛常见安全风险有哪些
- 账号安全怎么理解
- 数据安全和隐私安全怎么理解
- 内容安全和平台安全有什么关系
- 安全测试前需要准备什么
- 注册登录安全怎么测
- 第三方登录安全怎么测
- Token、Session、Cookie 安全怎么测
- 用户资料安全怎么测
- 发帖、评论、回复安全怎么测
- 图片、视频、文件上传安全怎么测
- 私信与通知安全怎么测
- 搜索功能安全怎么测
- 举报、审核、后台管理安全怎么测
- 用户隐私与个人数据安全怎么测
- 海外合规相关安全点怎么测
- 认证与鉴权安全怎么测
- 越权问题怎么测
- XSS 风险怎么测
- CSRF 风险怎么测
- 注入类风险怎么理解和测试
- 文件上传安全怎么测
- 敏感信息泄露怎么测
- 密码与验证码安全怎么测
- 接口防刷、防重放、防频率攻击怎么测
- 日志和错误信息安全怎么测
- 安全问题如何初步定位
- 安全测试用例怎么写
- 安全类 Bug 怎么提交
- 新手常见误区
- 最后总结
第一部分:安全测试基础概念
如果你是安全测试新手,建议先完整学习这一部分。
如果你已经了解常见 Web/App 安全风险,可以直接跳到 第二部分:海外社区论坛安全测试实战。
1. 为什么海外社区论坛要做安全测试
社区论坛是开放型产品,用户可以注册、登录、发帖、评论、私信、上传图片视频、举报内容、修改资料。
这些能力越开放,安全风险就越多。
例如:
- 用户账号可能被盗
- 普通用户可能越权查看别人的私信
- 用户输入内容可能造成页面脚本执行风险
- 图片或文件上传可能被滥用
- 后台管理接口可能被普通用户调用
- 接口可能被批量刷请求
- 敏感数据可能出现在接口返回或日志中
- 错误信息可能泄露系统内部细节
海外社区还会涉及更多隐私与合规要求,例如用户数据删除、账号注销、Cookie 授权、个人信息保护等。
1.1 安全问题会带来什么影响
| 安全问题 | 可能影响 |
|---|---|
| 账号被盗 | 用户资产、隐私、历史内容被滥用 |
| 越权访问 | 用户私信、通知、资料被其他人看到 |
| 越权操作 | 普通用户删除别人帖子或操作后台 |
| XSS | 恶意脚本影响其他用户页面安全 |
| 文件上传风险 | 上传异常文件影响系统或用户安全 |
| 敏感信息泄露 | 邮箱、手机号、Token、内部字段泄露 |
| 后台权限失控 | 内容、用户、审核功能被滥用 |
| 接口被刷 | 注册、验证码、评论、私信被恶意利用 |
1.2 社区论坛为什么特别容易有安全风险
因为社区论坛有大量用户输入和互动。
用户可以输入:
- 昵称
- 简介
- 帖子标题
- 帖子正文
- 评论
- 私信
- 搜索关键词
- 举报描述
用户可以上传:
- 头像
- 帖子图片
- 评论图片
- 私信图片
- 视频
用户可以访问:
- 自己的数据
- 别人的公开资料
- 帖子和评论
- 通知
- 私信
- 后台管理,限管理员
输入多、上传多、接口多、角色多,就意味着安全测试必须重视。
2. 什么是安全测试
安全测试就是:
在授权范围内验证系统是否存在可能被恶意利用的漏洞或风险,确保用户数据、系统功能和业务流程不会被非法访问、篡改或滥用。
简单理解:
功能测试:正常用户能不能用 |
安全测试不是让测试同学去攻击真实用户或生产系统,而是在测试环境中用安全的方法提前发现问题。
2.1 安全测试主要看什么
- 账号是否安全
- 登录态是否安全
- 用户是否能越权访问别人数据
- 用户输入是否被安全处理
- 文件上传是否受限制
- 接口是否有频率限制
- 敏感信息是否泄露
- 后台接口是否严格校验权限
- 错误信息是否暴露系统细节
- 日志是否记录敏感内容
- 用户隐私功能是否可用
3. 安全测试和功能测试有什么区别
| 对比项 | 功能测试 | 安全测试 |
|---|---|---|
| 关注点 | 功能是否按需求工作 | 功能是否能被恶意利用 |
| 用户视角 | 正常用户 | 正常用户 + 异常用户 + 恶意输入 |
| 测试重点 | 流程、页面、提示、数据 | 认证、权限、输入、上传、泄露、防护 |
| 常见问题 | 流程不通、展示错误 | 越权、注入、XSS、敏感信息泄露 |
| 严重程度 | 视功能影响而定 | 通常较高 |
3.1 举个例子:用户资料修改
功能测试会测:
用户能不能修改自己的昵称和简介 |
安全测试还要测:
用户A能不能修改用户B资料? |
4. 安全测试的边界和注意事项
安全测试必须有边界。
测试同学要记住:
只在授权环境测试 |
4.1 新手安全测试原则
| 原则 | 说明 |
|---|---|
| 授权优先 | 没有授权不要测高风险安全行为 |
| 测试环境优先 | 优先在测试环境验证 |
| 不破坏数据 | 不删除、篡改真实用户数据 |
| 不传播风险内容 | 不扩散敏感 payload 或漏洞细节 |
| 保留证据 | 截图、请求、响应、账号、环境要记录 |
| 及时上报 | 安全问题不要私下传播 |
4.2 本文的安全测试范围
本文重点讲测试同学常见可执行的安全验证:
- 登录认证
- 权限与越权
- 用户输入安全
- 文件上传安全
- Token 和 Cookie
- 接口频率限制
- 敏感信息泄露
- 错误信息泄露
- 后台权限
- 用户隐私功能
本文不会提供破坏性攻击教程,也不会指导绕过真实系统防护。
5. 社区论坛常见安全风险有哪些
| 风险 | 简单说明 | 社区场景 |
|---|---|---|
| 认证风险 | 登录态、Token、验证码处理不安全 | Token 过期后还能使用 |
| 越权风险 | 用户访问或操作不属于自己的资源 | 用户A查看用户B私信 |
| XSS | 用户输入内容导致脚本执行风险 | 帖子正文、评论、简介 |
| CSRF | 用户在不知情下触发操作 | Web 删除帖子、修改资料 |
| 注入风险 | 特殊输入影响后端查询或命令 | 搜索、登录、筛选参数 |
| 文件上传风险 | 上传危险文件或伪装文件 | 头像、帖子图片、视频 |
| 敏感信息泄露 | 返回或展示不该暴露的数据 | 接口返回手机号、Token |
| 频率攻击 | 高频调用接口滥用系统 | 短信验证码、注册、评论 |
| 错误信息泄露 | 错误提示暴露内部实现 | SQL 错误、服务路径、堆栈 |
| 后台安全风险 | 后台接口或菜单被越权访问 | 普通用户调用审核接口 |
6. 账号安全怎么理解
账号安全是安全测试的基础。
社区用户账号一旦被盗,攻击者可能:
- 发布违规内容
- 删除用户内容
- 查看私信
- 修改资料
- 冒充用户诈骗
- 批量私信别人
6.1 账号安全测试重点
- 密码规则是否合理
- 登录失败是否有限制
- 验证码是否可重复使用
- 找回密码流程是否安全
- 修改密码后旧 Token 是否失效
- 退出登录后 Token 是否失效
- 第三方登录绑定是否安全
- 账号封禁后是否还能使用旧 Token
7. 数据安全和隐私安全怎么理解
数据安全关注:
数据不能被未授权查看、修改、删除、泄露 |
隐私安全关注:
用户的个人信息和私密内容不能被不该看到的人看到 |
社区论坛中的敏感数据包括:
- 邮箱
- 手机号
- 登录设备
- IP 地址
- 私信内容
- 通知内容
- 举报记录
- 账号状态
- Token
- 第三方账号绑定信息
7.1 隐私安全重点
要重点验证:
- 用户只能查看自己的私信
- 用户只能查看自己的通知
- 用户不能查看别人的邮箱和手机号
- 管理后台敏感字段是否脱敏
- 日志中是否记录敏感信息
- 用户注销后个人资料如何展示
- 数据导出和删除流程是否只允许本人操作
8. 内容安全和平台安全有什么关系
内容安全主要关注违规内容治理,例如广告、诈骗、色情、仇恨言论。
平台安全主要关注系统本身是否安全,例如账号、权限、接口、数据。
两者有交叉。
例如:
- 恶意链接既是内容安全问题,也是用户安全问题
- 私信诈骗既是内容治理问题,也是账号安全问题
- 批量发帖既是风控问题,也是接口防刷问题
- 上传异常文件既是内容审核问题,也是文件安全问题
所以安全测试和风控审核专项不是完全割裂的。
9. 安全测试前需要准备什么
9.1 准备测试环境
需要确认:
- 是否允许做安全测试
- 哪个环境可以测
- 哪些功能在范围内
- 是否有专用测试账号
- 是否能查看接口文档
- 是否能查看日志
- 是否有后台账号
- 是否允许使用安全测试工具
- 出现高风险问题时如何上报
9.2 准备账号
建议准备:
| 账号 | 用途 |
|---|---|
| 用户A | 创建资源和私有数据 |
| 用户B | 测试越权访问用户A资源 |
| 游客 | 测试未登录访问 |
| 被禁言用户 | 测试状态限制 |
| 被封禁用户 | 测试旧 Token 是否失效 |
| 管理员 | 测试后台权限 |
| 版主 | 测试局部管理权限 |
9.3 准备测试数据
- 用户A的帖子
- 用户B的帖子
- 用户A的私信
- 用户B的通知
- 用户A的收藏记录
- 用户B的举报记录
- 多语言输入内容
- 特殊字符输入内容
- 正常图片
- 不支持格式文件
- 超大文件
第二部分:海外社区论坛安全测试实战
这一部分开始进入项目实战。
安全测试要结合具体业务模块看,不能只看抽象漏洞名。
10. 注册登录安全怎么测
注册登录是账号安全第一道门。
10.1 注册安全测试点
- 邮箱格式校验是否严格
- 同一邮箱是否能重复注册
- 邮箱大小写是否导致重复账号
- Gmail
+别名是否按产品规则处理 - 短时间大量注册是否被限制
- 注册验证码是否有频率限制
- 验证码是否可重复使用
- 验证码过期后是否失效
- 密码是否符合复杂度要求,按产品规则
- 注册失败提示是否避免泄露过多信息,按需求判断
10.2 登录安全测试点
- 正确账号密码登录成功
- 错误密码登录失败
- 多次错误密码是否触发限制
- 不存在账号提示是否过于明确,按安全策略判断
- 被封禁账号是否不能登录或受限
- 登录成功是否返回 Token
- 登录失败是否不返回 Token
- 退出登录后 Token 是否失效
- 修改密码后旧 Token 是否失效,按需求判断
10.3 找回密码安全测试点
- 找回密码链接是否有有效期
- 找回密码链接是否只能使用一次
- 修改密码后旧密码不能登录
- 修改密码后旧 Token 是否失效
- 用户A不能使用用户B的重置链接
- 重置成功后是否通知用户,按需求判断
11. 第三方登录安全怎么测
海外社区常见 Google、Apple、Facebook、Discord 等第三方登录。
11.1 第三方登录安全重点
- 授权 code 为空时不能登录
- 授权 code 错误时不能登录
- 授权 code 过期时不能登录
- 授权 code 不能重复使用
- 第三方返回邮箱为空时处理正确
- 第三方邮箱未验证时处理正确,按产品规则
- 同一第三方账号二次登录不创建重复账号
- 同邮箱不同第三方登录方式是否按规则绑定或提示
- Apple 隐藏邮箱场景是否不会错误合并账号
11.2 绑定和解绑安全
测试点:
- 绑定第三方账号时必须已登录
- 不能绑定已被其他账号绑定的第三方账号
- 解绑唯一登录方式时应阻止或要求先设置密码
- 解绑后第三方账号不能继续登录原账号,按产品规则
- 绑定/解绑操作是否有日志或通知,按需求判断
12. Token、Session、Cookie 安全怎么测
登录态安全非常重要。
12.1 Token 安全测试点
- 不带 Token 请求需要登录接口应失败
- 空 Token 应失败
- 错误 Token 应失败
- 过期 Token 应失败
- 退出登录后的 Token 应失败
- 修改密码后旧 Token 是否失效
- 封禁账号后旧 Token 是否失效或受限
- Token 是否出现在 URL 中,不建议
- 接口返回中是否泄露不必要 Token
12.2 Cookie 安全测试点,Web 项目
测试点:
- 登录 Cookie 是否设置合理过期时间
- 退出登录后 Cookie 是否失效
- Cookie 是否配置安全属性,按前端/安全规范判断
- 跨站请求是否受保护,按需求和安全策略
- Safari 等浏览器下 Cookie 行为是否正常
13. 用户资料安全怎么测
用户资料涉及隐私和输入安全。
13.1 资料访问安全
测试点:
- 用户A能查看用户B公开资料
- 用户A不能查看用户B邮箱、手机号等私密字段
- 用户A不能修改用户B资料
- 游客查看用户资料时返回字段是否受限
- 被拉黑用户查看对方资料是否受限,按需求判断
- 注销用户资料是否匿名化或隐藏,按需求判断
13.2 资料输入安全
需要验证:
- 昵称输入特殊字符后展示正常
- 简介输入 HTML 标签后不会被当作代码执行
- 简介输入链接时按规则处理
- 昵称、简介超长时被限制
- 头像上传格式和大小受限制
- 后台展示用户资料时也不会出现脚本执行风险
14. 发帖、评论、回复安全怎么测
发帖和评论是 XSS、恶意链接、内容注入风险高发区。
14.1 用户输入安全
测试位置:
- 帖子标题
- 帖子正文
- 评论内容
- 回复内容
- 话题名称,按需求判断
- 举报描述
测试点:
- 输入 HTML 标签后是否安全展示
- 输入脚本样式文本后是否被转义或过滤
- 输入超长内容是否被限制
- 输入特殊字符是否导致接口 500
- 输入 URL 是否按规则展示或审核
- 输入多语言和 Emoji 是否正常
14.2 展示安全
同一条内容要看多个展示位置:
- 帖子详情页
- Feed 摘要
- 用户主页
- 评论列表
- 通知摘要
- 搜索结果
- 后台审核页
不能只验证发布页,因为安全问题可能出现在某个展示入口。
15. 图片、视频、文件上传安全怎么测
文件上传是安全测试重点。
15.1 上传限制测试
测试点:
- 只允许指定格式上传
- 不支持格式应被拒绝
- 超大文件应被拒绝
- 损坏文件应被拒绝或提示失败
- 文件扩展名和真实类型不一致时处理正确
- 文件名包含特殊字符时处理正确
- 上传失败不应暴露服务器路径或内部错误
15.2 图片视频处理安全
测试点:
- 上传后文件 URL 是否可被未授权访问,按资源权限判断
- 私信图片是否只有会话双方可见,按需求判断
- 审核失败的图片视频是否不能公开访问
- 已删除内容的媒体资源是否处理正确
- 头像、帖子图、私信图是否使用正确权限策略
16. 私信与通知安全怎么测
私信和通知涉及用户隐私。
16.1 私信安全
测试点:
- 用户只能查看自己参与的会话
- 用户A不能查看用户B和用户C的私信
- 用户A不能删除用户B的会话
- 被拉黑后不能继续私信
- 私信中的链接按规则处理
- 私信图片权限正确
- WebSocket 或实时消息只能收到自己的消息
16.2 通知安全
测试点:
- 用户只能查看自己的通知
- 用户只能标记自己的通知已读
- 用户不能删除别人的通知
- 通知接口不返回别人的资源详情
- 点击通知后仍要校验目标资源权限
- 已删除内容通知点击有合理提示
17. 搜索功能安全怎么测
搜索入口会接收用户输入,也可能暴露不该展示的内容。
17.1 搜索输入安全
测试点:
- 搜索特殊字符不应导致接口 500
- 搜索超长关键词应有限制
- 搜索 HTML 或脚本样式文本不应影响页面展示
- 搜索异常参数时应返回合理错误
- 搜索结果高亮不应造成脚本执行风险
17.2 搜索结果安全
测试点:
- 不返回已删除帖子
- 不返回审核失败帖子
- 不返回隐藏内容
- 不返回用户私密资料
- 被屏蔽用户内容是否按规则过滤
- 被拉黑用户内容是否按规则过滤
18. 举报、审核、后台管理安全怎么测
后台管理是高危区域。
18.1 举报安全
测试点:
- 普通用户可以举报允许举报的对象
- 用户不能查看别人举报记录
- 举报描述输入特殊字符后后台安全展示
- 重复举报是否按规则限制
- 举报接口是否有频率限制
- 被封禁用户是否允许举报,按需求判断
18.2 审核后台安全
测试点:
- 普通用户不能访问后台页面
- 普通用户不能调用后台接口
- 版主只能操作负责范围内内容
- 管理员不能操作超级管理员,按需求判断
- 后台高危操作要有日志
- 后台错误信息不应暴露内部堆栈
- 后台导出数据是否受权限控制
19. 用户隐私与个人数据安全怎么测
海外项目尤其要关注个人数据。
19.1 敏感字段返回
检查接口返回中是否包含不必要敏感字段,例如:
- 邮箱
- 手机号
- IP
- 登录设备 ID
- Token
- 第三方账号 ID
- 内部用户状态字段
- 风控标签
- 管理员备注
公开接口不应返回不必要的敏感字段。
19.2 数据导出和删除
如果支持数据导出、删除账号:
- 只有本人能申请导出自己的数据
- 用户A不能导出用户B数据
- 删除账号需要身份校验
- 删除后登录态失效
- 删除后个人资料匿名化或隐藏,按需求判断
- 导出文件下载链接是否有权限和有效期
20. 海外合规相关安全点怎么测
测试同学不负责解释法律,但需要验证合规相关功能是否可用和受权限保护。
20.1 Cookie 和追踪授权
Web 项目测试点:
- 首次访问展示 Cookie 授权入口,按地区需求
- 用户拒绝非必要 Cookie 后仍可使用基础功能
- 用户选择可以保存
- 用户可以重新修改选择
- 清除 Cookie 后逻辑符合需求
20.2 年龄和未成年人保护
如果产品涉及年龄限制:
- 未达到年龄要求时是否限制注册
- 边界年龄处理正确
- 年龄相关字段不能被轻易绕过,按需求判断
- 儿童账号功能受限,按产品规则
第三部分:安全专项测试方法
这一部分不是某个具体模块,而是一套可以复用的方法。
安全测试要谨慎进行,确保在授权范围内验证,不做破坏性操作。
21. 认证与鉴权安全怎么测
认证是判断“你是谁”,鉴权是判断“你能不能做”。
21.1 认证测试点
- 未登录不能访问需要登录的接口
- Token 过期后不能访问
- Token 伪造后不能访问
- 退出登录后旧 Token 不能访问
- 封禁后旧 Token 不能继续操作,按需求判断
21.2 鉴权测试点
- 用户A不能操作用户B资源
- 普通用户不能访问管理员接口
- 版主不能操作非负责板块
- 被禁言用户不能发帖评论
- 被封禁用户不能继续操作
22. 越权问题怎么测
越权分为水平越权和垂直越权。
22.1 水平越权
同级用户之间操作了别人的数据。
测试方法:
1. 用户A创建资源 |
常见场景:
- 查看别人私信
- 修改别人资料
- 删除别人帖子
- 标记别人通知已读
- 下载别人数据导出文件
22.2 垂直越权
低权限用户操作高权限功能。
常见场景:
- 普通用户访问后台
- 普通用户调用审核接口
- 普通用户封禁别人
- 版主操作非负责板块
- 管理员操作超级管理员
23. XSS 风险怎么测
XSS 是指用户输入内容在页面展示时,没有被正确处理,导致脚本执行风险。
测试同学可以这样理解:
用户输入的内容,应该被当作普通文本展示,而不能被浏览器当作代码执行。 |
23.1 需要关注的位置
- 昵称
- 简介
- 帖子标题
- 帖子正文
- 评论
- 私信
- 搜索关键词回显
- 通知摘要
- 后台审核内容
- 举报描述
23.2 测试思路
在授权测试环境中输入安全的测试字符串,观察页面是否:
- 原样作为文本展示
- 被安全转义
- 没有弹窗或脚本执行
- 没有破坏页面结构
- 后台展示也安全
建议使用内部约定的安全测试样本,不要随意传播危险 payload。
24. CSRF 风险怎么测
CSRF 主要出现在 Web 场景。
简单理解:
用户已经登录某网站时,其他页面诱导用户发起一个非本人主动操作的请求。
测试同学主要关注:
- 修改资料、删除帖子、退出登录等敏感操作是否有防护
- 重要操作是否只接受合理来源和 Token 校验
- 后端是否不仅依赖 Cookie,还结合 CSRF Token 或其他机制,按安全设计
新手不需要自己构造复杂攻击页面,但要知道 Web 高危操作不能只靠 Cookie 自动通过。
25. 注入类风险怎么理解和测试
注入风险是指用户输入被后端错误拼接到查询或命令中,导致异常行为。
常见入口:
- 登录账号输入
- 搜索关键词
- 筛选条件
- 排序字段
- 用户 ID
- 帖子 ID
- 后台查询条件
25.1 新手测试思路
在测试环境输入特殊字符或异常参数,观察:
- 接口是否返回 500
- 是否出现数据库错误信息
- 是否返回异常数据
- 是否绕过登录或权限
- 是否有合理的参数校验
不要在未授权环境进行破坏性注入测试。
26. 文件上传安全怎么测
文件上传安全非常重要。
26.1 测试重点
- 文件类型限制
- 文件大小限制
- 文件数量限制
- 文件名特殊字符处理
- 扩展名和真实文件类型校验
- 上传失败错误提示安全
- 上传后的文件访问权限
- 审核失败文件不可公开访问
26.2 社区项目典型场景
| 上传位置 | 安全关注点 |
|---|---|
| 头像 | 图片格式、大小、审核、公开访问 |
| 帖子图片 | 格式、数量、违规图片、资源权限 |
| 评论图片 | 审核、删除后访问 |
| 私信图片 | 只有会话双方可见 |
| 视频 | 格式、大小、转码、审核、播放权限 |
27. 敏感信息泄露怎么测
敏感信息泄露是安全测试常见问题。
27.1 接口返回检查
检查接口返回是否包含:
- password
- token
- refreshToken
- phone
- email,公开场景要谨慎
- ip
- deviceId
- adminRemark
- riskTag
- internalStatus
- thirdPartyId
不是所有字段都绝对不能返回,要看业务场景。但公开接口、游客接口、他人主页接口尤其要谨慎。
27.2 页面和日志检查
- 页面源代码是否暴露敏感配置
- 错误页面是否暴露堆栈
- 控制台是否输出 Token
- 日志是否记录验证码、密码、Token
- 导出文件是否包含不必要敏感字段
28. 密码与验证码安全怎么测
28.1 密码安全
测试点:
- 密码复杂度符合产品规则
- 密码不能明文展示
- 修改密码需要身份验证
- 修改密码后旧密码失效
- 修改密码后旧 Token 是否失效
- 密码错误次数过多是否限制
28.2 验证码安全
测试点:
- 验证码有有效期
- 验证码不能重复使用
- 验证码错误次数过多是否限制
- 短时间频繁发送验证码是否限制
- 更换邮箱/手机号后旧验证码是否失效
- 验证码不应出现在接口返回或日志中
29. 接口防刷、防重放、防频率攻击怎么测
社区接口容易被刷。
29.1 高频风险接口
- 注册
- 登录失败
- 发送验证码
- 发帖
- 评论
- 点赞
- 关注
- 私信
- 举报
- 搜索
- 文件上传
29.2 测试点
- 高频请求是否触发限制
- 限制后提示是否清楚
- 限制是否对页面和接口都生效
- 不同账号、同一设备、同一 IP 是否有策略,按需求判断
- 限制解除后是否恢复
- 重复提交是否产生重复数据
30. 日志和错误信息安全怎么测
错误信息和日志也可能泄露安全信息。
30.1 错误信息测试点
- 参数错误不应返回数据库错误
- 服务异常不应返回堆栈信息
- 文件上传失败不应暴露服务器路径
- 登录失败提示不应过度暴露账号是否存在,按安全策略判断
- 后台错误提示不应暴露内部服务地址
30.2 日志安全测试点
如果能查看日志,关注:
- 是否记录明文密码
- 是否记录验证码
- 是否记录完整 Token
- 是否记录完整手机号、邮箱,按脱敏要求
- 是否记录用户私信明文,按合规和业务要求
31. 安全问题如何初步定位
测试同学不一定要完全定位安全漏洞根因,但可以帮助开发缩小范围。
31.1 定位思路
问题发生在哪个模块? |
31.2 常见现象和可能原因
| 现象 | 可能原因 |
|---|---|
| 页面隐藏按钮但接口可操作 | 后端权限校验缺失 |
| 用户输入影响页面结构 | 前端未正确转义或过滤 |
| 上传不支持文件成功 | 文件类型校验不足 |
| 接口返回手机号 | 返回字段未脱敏或未裁剪 |
| Token 退出后仍可用 | 登录态失效机制问题 |
| 参数错误返回 SQL 信息 | 后端异常处理不安全 |
| 普通用户访问后台接口成功 | 后台接口鉴权缺失 |
第四部分:用例、Bug 与总结
安全测试用例一定要写清楚:账号身份、资源归属、输入内容、接口请求、实际风险和预期安全行为。
32. 安全测试用例怎么写
安全测试用例建议包含:
- 用例编号
- 模块
- 风险类型
- 操作账号
- 目标资源
- 前置条件
- 测试数据
- 操作步骤
- 预期结果
- 是否验证数据未变化
- 优先级
32.1 用例模板
| 字段 | 示例 |
|---|---|
| 用例编号 | SEC_AUTH_001 |
| 模块 | 帖子删除 |
| 风险类型 | 水平越权 |
| 操作账号 | 普通用户B |
| 目标资源 | 用户A的帖子 P001 |
| 前置条件 | 用户A已发布帖子 P001,用户B已登录 |
| 测试数据 | userB_token,postId=P001 |
| 操作步骤 | 用户B调用删除帖子接口删除 P001 |
| 预期结果 | 返回无权限,帖子仍然存在,数据未变化 |
| 优先级 | P0 |
32.2 示例用例:私信越权访问
| 字段 | 内容 |
|---|---|
| 用例编号 | SEC_MSG_001 |
| 模块 | 私信 |
| 风险类型 | 隐私越权 |
| 操作账号 | 用户C |
| 目标资源 | 用户A与用户B的会话 C001 |
| 前置条件 | 用户A和用户B存在私信会话 C001;用户C已登录 |
| 操作步骤 | 用户C调用会话消息列表接口访问 C001 |
| 预期结果 | 返回无权限或资源不存在;不返回任何消息内容 |
| 优先级 | P0 |
32.3 示例用例:用户输入安全展示
| 字段 | 内容 |
|---|---|
| 用例编号 | SEC_INPUT_001 |
| 模块 | 评论 |
| 风险类型 | 输入展示安全 |
| 操作账号 | 普通用户A |
| 目标资源 | 帖子 P001 |
| 前置条件 | 帖子 P001 正常展示 |
| 测试数据 | 内部约定的安全测试字符串 |
| 操作步骤 | 用户A发表评论;查看评论列表、Feed摘要、通知、后台审核页 |
| 预期结果 | 内容作为普通文本安全展示,不破坏页面,不执行脚本 |
| 优先级 | P0 |
33. 安全类 Bug 怎么提交
安全类 Bug 要写清楚风险影响,避免只写“接口有问题”。
33.1 安全 Bug 应包含
- Bug 标题
- 测试环境
- 风险类型
- 操作账号和角色
- 目标资源归属
- 请求信息,接口问题必填
- 操作步骤
- 实际结果
- 预期结果
- 风险影响
- 复现概率
- 截图、录屏、请求响应
- 严重程度
33.2 示例 Bug:普通用户越权查看他人私信
标题
[安全][越权] 普通用户可通过会话接口查看其他用户私信内容 |
前置条件
测试环境:Test |
操作步骤
1. 用户C登录,获取 userC_token |
实际结果
接口返回成功,响应中包含用户A与用户B的私信消息内容。 |
预期结果
用户C未参与该会话,无权查看私信内容。接口应返回无权限或资源不存在,不能返回任何消息内容。 |
风险影响
该问题会导致用户私信泄露,属于严重隐私安全问题。 |
严重程度
Critical |
33.3 示例 Bug:接口返回敏感字段
标题
[安全][敏感信息泄露] 他人主页接口返回用户手机号字段 |
实际结果
用户A访问用户B公开主页接口时,响应中包含 phone 字段,返回了用户B完整手机号。 |
预期结果
公开主页接口不应返回手机号等私密字段。如业务需要展示,应按规则脱敏或仅本人可见。 |
风险影响
可能导致用户个人信息泄露。 |
严重程度
Critical |
34. 新手常见误区
34.1 把安全测试当成攻击测试
安全测试不是随便攻击系统。
必须在授权范围内、测试环境中、安全地验证风险。
34.2 只测页面,不测接口
很多安全问题在接口层。
例如:
页面没有删除按钮,但接口仍然可以删除 |
34.3 只测普通用户,不测多角色
安全测试一定要覆盖:
- 游客
- 普通用户
- 资源拥有者
- 非资源拥有者
- 被封禁用户
- 版主
- 管理员
34.4 不验证数据是否真的被修改
越权操作失败后,也要确认数据没有变化。
例如删除失败后,帖子仍然应该存在。
34.5 忽略错误信息和日志
错误信息里可能泄露:
- 数据库表名
- 服务路径
- 堆栈信息
- 内部 IP
- Token
- 验证码
这些也属于安全风险。
35. 最后总结
安全测试的核心不是“学会很多攻击名词”,而是要理解:
用户是谁? |
对于海外社区论坛项目,最需要重点关注的安全方向是:
- 注册登录安全
- 第三方登录安全
- Token / Cookie 安全
- 水平越权和垂直越权
- 用户输入安全
- XSS 风险
- 文件上传安全
- 私信和通知隐私
- 敏感信息泄露
- 验证码和密码安全
- 接口防刷
- 后台管理安全
- 用户数据导出和删除安全
- 错误信息和日志安全
你可以记住一个万能安全测试公式:
身份 + 权限 + 输入 + 资源归属 + 数据返回 + 操作结果 = 安全测试场景 |
例如:
普通用户B + 无权限 + 删除接口 + 用户A帖子 + 不应返回成功 + 帖子不应被删除 |
只要你每次测试安全问题时都围绕这些维度去拆,安全测试思路就会越来越清晰。








