AI 写的代码有 4 类安全陷阱 用 secure-code 一键注入防护规则
审计 50 个 Cursor/Claude 项目发现 4 类常见安全陷阱:租户隔离缺失、时序攻击、事务内网络请求、浮点货币。secure-code 提供 11 种语言的 drop-in 规则。

2026 年 9 月 13 日,开发者 Mohammed Ibrahim 在 DEV Community 发文,分享了他审计 50 个用 Cursor 和 Claude 构建的项目后发现的 4 类反复出现的安全陷阱。他随后开源了 secure-code 项目,提供 drop-in 安全规则,支持 Cursor、Claude Code 和 Copilot,覆盖 11 种编程语言。
4 类 AI 代码的安全陷阱
数据库查询缺少租户隔离(IDOR 漏洞):AI 生成的 CRUD 代码经常不包含 tenant_id 过滤。在多租户应用里,这意味着用户 A 可能通过修改 URL 参数访问用户 B 的数据。
Webhook 验证使用时序不安全比较:AI 倾向于写 token === secret 而不是 crypto.timingSafeEqual()。攻击者可以通过测量响应时间差异来逐字节猜测 secret。
事务块内的第三方网络请求:AI 把 Stripe/PayPal 等 API 调用放在数据库事务里。如果第三方 API 响应慢,数据库连接被长时间占用,高并发下连接池耗尽。
浮点数做货币计算:AI 用 JavaScript/Python 的 float 做金额运算,导致精度丢失。应该用整数(分/cents)或 Decimal 类型。
Ibrahim 的原话:"Cursor forgets system prompts unless you ground it with strict mathematical invariants." 长会话中 Cursor 会偏离系统 prompt 的安全约束,除非你在项目配置里持续强化这些规则。
secure-code 怎么用
一条命令注入安全规则到你的项目:
npx github:carbonthecoder/secure-code inject
它会自动检测你使用的编程语言,找到 .cursorrules(Cursor)或 CLAUDE.md(Claude Code)文件,在底部追加安全和性能约束,不覆盖你已有的 prompt 内容。
支持的语言:TypeScript、Python、Go、Rust 和其他 7 种语言。同时支持 Cursor(.cursorrules)、Claude Code(CLAUDE.md)和 Copilot 的配置格式。
项目采用 MIT 开源许可:https://github.com/carbonthecoder/secure-code
和 Agent 配置安全的关系
secure-code 解决的是"AI 生成的代码质量"问题。最近 arxiv 论文 发现 16% 的 Agent 配置本身存在安全缺陷(MCP 无版本锁定、预批准任意执行等)。两个层面都需要关注:
代码层面:用 secure-code 规则约束 AI 生成的代码质量。
配置层面:检查 MCP/skill/hook 配置的权限范围,避免预批准过宽的工具访问。
对于 Cursor 用户,secure-code 规则和 Project Rules 可以配合使用。Project Rules 是 Cursor 的原生机制(.cursor/rules/),secure-code 是直接修改 .cursorrules 文件。两者不冲突,可以同时存在。