88 lines
4.2 KiB
Markdown
88 lines
4.2 KiB
Markdown
|
|
# 项目专项Bug审计
|
|||
|
|
|
|||
|
|
`Bug审计` `代码审查` `安全测试` `AI开发` `质量保障`
|
|||
|
|
|
|||
|
|
# 🔍 Bug 审计技能
|
|||
|
|
|
|||
|
|
[](https://clawhub.com)
|
|||
|
|
[](LICENSE)
|
|||
|
|
[](https://github.com/openclaw/openclaw)
|
|||
|
|
|
|||
|
|
> 不要执行检查清单。先解剖项目,再对每个实体进行全面验证。
|
|||
|
|
|
|||
|
|
源于一次深刻教训:某项目使用通用检查清单历经 **21 轮**才找到 172 个 Bug。事后复盘发现,如果先构建项目专属检查矩阵,大多数 Bug 在 **3-4 轮**内就能发现。
|
|||
|
|
|
|||
|
|
## 检查清单的问题
|
|||
|
|
|
|||
|
|
通用检查清单只能捕捉"已知模式"类 Bug(CORS、XSS、时区问题)。但大多数关键 Bug 是**项目特有的逻辑漏洞**:
|
|||
|
|
- `buy` 接口接受 `cost=0` → 免费购买(任何清单都没有这条)
|
|||
|
|
- `raid-result` 可在未调用 `buy` 的情况下直接触发 → 无限刷金漏洞
|
|||
|
|
- 搜索完成不校验距离 → 远程掠夺
|
|||
|
|
|
|||
|
|
这些 Bug 藏在 **API 之间的关系**中,而非某个独立的代码模式里。
|
|||
|
|
|
|||
|
|
## 解决方案:解剖 → 验证 → 补充
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
阶段一:解剖 — 阅读代码,构建 6 张项目专属表格(10-15 分钟)
|
|||
|
|
阶段二:验证 — 逐行检查每张表格的每一条记录
|
|||
|
|
阶段三:补充 — 运行通用模块作为安全兜底
|
|||
|
|
阶段四:回归 — 检查修复是否引入新 Bug
|
|||
|
|
阶段五:归档 — 记录本次审计的踩坑经验
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 六张核心表格
|
|||
|
|
|
|||
|
|
| 表格 | 提取内容 | 核心问题 |
|
|||
|
|
|------|----------|----------|
|
|||
|
|
| API 端点 | 每条路由:方法、路径、鉴权、参数 | 能否绕过?传入异常值会怎样? |
|
|||
|
|
| 状态机 | 每个状态变量:写入者、读取者、生命周期 | 是否跨生命周期泄漏? |
|
|||
|
|
| 定时器 | 每个 setTimeout/setInterval | 清理后是否仍会触发? |
|
|||
|
|
| 数值参数 | 每个用户可影响的数值 | 传入 0、负数、超大值会怎样? |
|
|||
|
|
| 数据流 | 每对关联 API(如 buy→use) | 能否跳过第一步直接调用第二步? |
|
|||
|
|
| 资源账本 | 每种资源:所有流入、所有流出 | 是否存在无限循环? |
|
|||
|
|
|
|||
|
|
**数据流表格是最关键的。** 最严重的 Bug(绕过购买、缺失突袭令牌)就藏在 API 之间的调用链里。
|
|||
|
|
|
|||
|
|
## 安装
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
clawhub install bug-audit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或手动安装:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git clone https://github.com/abczsl520/bug-audit-skill.git ~/.openclaw/skills/bug-audit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
然后说:"对这个项目执行bug排查" 或 "audit this project for bugs"
|
|||
|
|
|
|||
|
|
## 文件说明
|
|||
|
|
|
|||
|
|
| 文件 | 内容 |
|
|||
|
|
|------|------|
|
|||
|
|
| `SKILL.md` | 核心方法论:6 张表格 + 5 个阶段 |
|
|||
|
|
| `references/modules.md` | 阶段三使用的 9 个通用审计模块 |
|
|||
|
|
| `references/pitfalls.md` | 200+ 真实踩坑案例 + 调试技巧 |
|
|||
|
|
|
|||
|
|
## 文档
|
|||
|
|
|
|||
|
|
完整文档见 [Wiki](https://github.com/abczsl520/bug-audit-skill/wiki):
|
|||
|
|
- [解剖流程详解](https://github.com/abczsl520/bug-audit-skill/wiki/解剖流程详解) — 如何构建每张表格,应该问哪些问题
|
|||
|
|
- [排查模块一览](https://github.com/abczsl520/bug-audit-skill/wiki/排查模块一览) — 9 个通用模块,用于补充检查
|
|||
|
|
- [实战踩坑速查](https://github.com/abczsl520/bug-audit-skill/wiki/实战踩坑速查) — 高频踩坑 + 远程调试技巧
|
|||
|
|
|
|||
|
|
## 🔗 AI 开发质量套件
|
|||
|
|
|
|||
|
|
| 技能 | 用途 | 安装命令 |
|
|||
|
|
|------|------|----------|
|
|||
|
|
| **bug-audit**(本项目) | 动态 Bug 挖掘,200+ 踩坑模式 | `clawhub install bug-audit` |
|
|||
|
|
| [codex-review](https://github.com/abczsl520/codex-review) | 三级代码审查:快速扫描 → 深度审计 → 对抗性测试 | `clawhub install codex-review` |
|
|||
|
|
| [debug-methodology](https://github.com/abczsl520/debug-methodology) | 根因调试,防止补丁链式反应 | `clawhub install debug-methodology` |
|
|||
|
|
| [nodejs-project-arch](https://github.com/abczsl520/nodejs-project-arch) | AI 友好架构,节省 70-93% Token | `clawhub install nodejs-project-arch` |
|
|||
|
|
| [game-quality-gates](https://github.com/abczsl520/game-quality-gates) | 12 项通用游戏开发质量检查 | `clawhub install game-quality-gates` |
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
MIT
|