$ phreaker init

永不下班的
AI 代码审查。

在每一次 push 上,提供资深工程师水准的 PR 分析。在合并前发现 Bug、安全漏洞和代码异味。由小米 MiMo 提供算力。

每月免费 30 个 PR · 无需信用卡
14.2k
PRs reviewed
2,847
Bugs caught
312
Security issues
98.4%
Dev satisfaction
// FEATURES

Phreaker 能发现什么

基于数百万真实 PR 和 CVE 数据训练。

[01]

安全漏洞

SQL 注入、XSS、密钥泄露、不安全反序列化、命令注入。交叉引用 CVE 数据库。

[02]

逻辑 Bug

差一错误、空指针、竞态条件、错误的状态迁移、render 中的副作用。

[03]

性能问题

N+1 查询、不必要的重渲染、热路径阻塞 IO、事件监听器泄露、无界循环。

[04]

风格与规范

基于你仓库历史学习项目专属规范,不是通用规则的垃圾刷屏。

[05]

测试覆盖缺口

标记没有对应测试的新逻辑,为边界条件建议测试用例。

[06]

架构漂移

检测变更是否违反文档化架构(ADR、AGENTS.md、CONTRIBUTING.md)。

// 在线演示

看它审查一个真实 PR

这是 MiMo 在一段易受攻击的 Express 端点上的真实输出,无人工挑选。

PR #142 · feat: 通过 id 获取用户
phreaker-bot
api/users.ts
diff --git a/api/users.ts b/api/users.ts
@@ -12,8 +12,15 @@ export async function getUser(req: Request) {
const id = req.params.id;
- const user = await db.query(
- `SELECT * FROM users WHERE id = '${id}'`
- );
+ const user = await db.query(
+ `SELECT * FROM users WHERE id = ${id}`
+ );
return Response.json(user);
}
发现 3 个问题 · 1 严重 · 1 高危 · 1 中危
严重安全
L14
SQL 注入漏洞
用户输入被直接拼接到 SQL 查询中。攻击者可通过 `1 OR 1=1; DROP TABLE users;--` 窃取或销毁数据。请使用参数化查询。
const user = await db.query('SELECT * FROM users WHERE id = $1', [id]);
高危校验
L13
`id` 字段缺乏输入校验
未对 `id` 进行类型/格式校验。若列是整型,非数字输入将引发异常并泄露调用栈。
if (!/^[0-9]+$/.test(id)) return new Response('Bad Request', { status: 400 });
中危错误处理
L16
缺少错误兜底
DB 查询失败时,未捕获的 Promise rejection 会泄露到运行时,返回 500 但没有日志上下文。请加 try/catch 并打结构化日志。
// 价格

免费开始。规模化才付费。

所有套餐均不限仓库数。限制为每月每 PR。

Hobby
¥0/永久
  • +30 PR / 月
  • +仅公开仓库
  • +Discord 社区支持
安装
Pro
¥199/月
  • +500 PR / 月
  • +私有仓库
  • +仓库级自定义规则
  • +AGENTS.md 感知
  • +邮件支持
14 天免费试用
Team
¥1,399/月
  • +无限 PR
  • +5 个席位
  • +SSO + 审计日志
  • +Slack + Linear 集成
  • +优先支持
联系销售
Phreaker — AI Code Review for GitHub