4 分•作者: hamzzaamalik•6 个月前
Hi HN,
我开发了 *CodeDrift*,一个 CLI 工具,用于检测由 Copilot、Cursor 和 ChatGPT 等 AI 编码助手经常引入的错误。
在过去的一年里,我注意到 AI 工具经常生成能够正确编译、通过 linting 检查,并且在代码审查中看起来合理的代码,但仍然包含一些细微的问题。
我经常看到的一些常见例子包括:
* 未等待 Promise 的异步 `forEach` 循环
* 缺少授权检查(IDOR)
* 幻觉依赖项(不存在的依赖项)
* 泄露敏感信息的堆栈跟踪
* 未经验证就使用的请求数据
这些错误常常会逃过 ESLint、TypeScript 甚至人工审查员的眼睛,因为代码 <i>看起来</i> 是正确的。
CodeDrift 使用 TypeScript 编译器 API 解析代码,并运行一组检测器来查找这些模式。
例如:
```
async function syncProducts(items) {
items.forEach(async (item) => {
await updateStock(item.id);
});
}
```
CodeDrift 输出:
```
CRITICAL: async forEach does not await promises
Fix: use Promise.all or a for...of loop
```
它检测到的另一个例子:
```
Database query using user-supplied ID without authorization check
→ potential IDOR vulnerability
```
其目标不是取代 ESLint 或 TypeScript 等工具,也不是取代 Snyk 等安全扫描器。
它旨在作为使用 AI 助手生成的代码的安全层。
该工具在本地运行,不需要云访问,可以通过以下方式试用:
```
npx codedrift
```
我很乐意收到正在生产中使用 AI 编码工具的开发者的反馈。