bikr/TRAP
GitHub: bikr/TRAP
TRAP 是一段将 AI 编程助手重编程为对抗性证据优先安全审计引擎的提示词,解决 AI 辅助开发项目上线前缺乏深度安全与生产就绪审查的问题。
Stars: 11 | Forks: 0

# 🪤 TRAP — 真实就绪审计提示词
**一种对抗性的、证据优先的生产就绪审计,你在自己的代码库上运行 —— 赶在别人之前进行。**
[](CHANGELOG.md)
[](LICENSE)
[](TRAP.md)
[](CONTRIBUTING.md)
[](#-哪些工具兼容它)
[](#-哪些工具兼容它)
[](#-哪些工具兼容它)
[](#-哪些工具兼容它)
[**📋 复制提示词**](TRAP.md) · [**🚀 快速开始**](#-quick-start) · [**🧭 11 个阶段**](#-how-it-works-the-11-phases) · [**☕ 支持**](#-support)
## 什么是 TRAP?
TRAP 是一个单一且可复制粘贴的提示词,能将你的 AI 编程助手重新编程为一个 **10 人对抗性审查委员会** —— 包括 Staff Engineer、首席安全工程师、Pentester、OWASP 专家、DBA、Cloud Architect、隐私与合规顾问、Release Manager 等 —— 他们以统一的声音发声。
它唯一的工作是:判断你的应用是否**真正具备生产就绪条件**,并为你提供实现这一目标的精确路径。
如果你一直在寻找 **Claude 安全审查**、**AI 安全审计**,或者是为你使用 **Lovable、Bolt、v0、Cursor、Replit 或 Claude Code** 构建的应用准备的一份真正的生产就绪清单 —— 这就是 TRAP。区别在于它拒绝猜测。
它围绕一个令人不安的想法构建:
所以 TRAP 拒绝猜测。它做出的每一个声明都必须带有结论:
| 结论 | 含义 |
| :-- | :-- |
| ✅ **已验证** | “我阅读了证明这一点的代码/配置。” 引用 `file:line`、路由、middleware 或策略。 |
| ❌ **不存在** | “我搜索了此控制项,但它不存在。” 说明搜索词以便你可以重现。**不存在即是一个发现,绝不代表通过。** |
| ❓ **未知** | “无法从源码证明这一点。” 明确告诉你哪个控制台/命令/文件*可以*证明它。 |
如果它不能指向代码,它就不能称你是安全的。
## 为什么它与众不同
大多数“审查我的应用”的提示词都是奉承机器 —— 它们模式匹配框架的典型结构,然后交回一个令人安心的 ✅。TRAP 专门设计用于**抵抗**这一点。
其他人则走向了相反的方向:他们是**人设套装**。他们给模型一个名字、一个职位头衔、一个背景故事和一种说话方式,使得审查*听起来*像是出自一位经验丰富的安全工程师之手。这是一个非常有趣的技巧,它让输出感觉温暖、人性化且权威 —— 但人设并不会去阅读你的代码。Agent*如何与你交谈*与它是否真的发现了 IDOR 毫无关系。更糟糕的是,围绕未经证实的发现包裹着友好、自信的声音比沉默更危险:它*感觉*像是在尽职调查,但实际上什么也没提供。TRAP 将笔墨花在方法上,而不是态度上 —— 检查什么,什么算作证据,以及当证据不存在时该承认什么。
- 🚫 **访问门控(规则 0)。** 没有 repo 访问权限?它拒绝审计并如实相告 —— 而不是凭感觉幻觉出一份报告。
- 🔬 **声明 ≠ 已验证。** 一个*存在*但未经真正跨租户测试证明的访问控制策略会被报告为**不存在**。启用了从未测试过的防护被认为比没有防护*更糟*。
- 🎯 **覆盖率规则。** 有限集合(路由、环境变量、迁移、上传处理程序)会被逐一枚举和审计 —— 不会从样本暗示完全覆盖。
- ⚖️ **每个发现都包含严重性 × 置信度。** 并且禁止为了“以防万一”而在未经证实的预感上夸大严重性。
- 🗡️ **攻击模式(阶段 6)。** 它停止审查并开始攻击 —— 评估可能性、影响、难度,*以及你的日志是否甚至能捕获它。*
- 🪞 **强制性自我挑战。** 在完成之前,它会审计*自己的报告*是否存在过度声明,并降级任何它推断而不是阅读到的内容。
- 🔁 **修复循环。** 一个修复只有在其特定的漏洞利用测试通过时才算是“完成”的 —— 而不是当代码仅仅是*看起来*正确时。
## 🚀 快速开始
1. 在你的项目中**打开** AI 编程助手(Claude Code、Cursor、Copilot Chat 等),以便它能够实际读取你的文件。
2. 从 **[`TRAP.md`](TRAP.md)** 中**复制**完整的提示词 —— 分割线以下的所有内容。
3. 将其作为单条消息**粘贴**。
4. **观察规则 0 触发。** 它首先确认能看到你的代码(根路径 + 大致文件数)。如果不能,它就会停止。很好 —— 这正是目的所在。
5. **自上而下阅读。** 执行摘要会给你一个字母评级和一个 `✅ 就绪 / ⚠️ 有条件就绪 / ❌ 禁止部署` 的决定。修复路线图为你提供有序的脱困路径。
6. **修复,然后循环。** 交回你修改后的文件,并要求它只对增量部分重新审计。重复此过程,直到达到 `✅ 就绪` 且没有未解决的严重/高危险发现。
```
┌────────────────────────────────────────────────────────────┐
│ Give AI repo access → Paste TRAP.md → Rule 0 gate │
│ ↓ │
│ 11 phases of evidence-based audit │
│ ↓ │
│ Graded report + exact diffs + remediation roadmap │
│ ↓ │
│ Apply fixes → Re-audit the delta → ✅ Ready │
└────────────────────────────────────────────────────────────┘
```
## 🧩 或者将其作为 Skill 安装(自动激活)
不想粘贴?TRAP 也以 [Claude Code Agent Skill](skills/trap/SKILL.md) 的形式提供,因此当你要求“安全审查”或“检查是否具备生产就绪条件”时,它可以自动触发 —— 无需复制粘贴。
```
# 克隆 TRAP,然后将该 skill 放入你的 Claude Code skills 文件夹中。
# 全局 —— 可在你的机器上的每个项目中使用:
git clone https://github.com/bikr/TRAP.git
mkdir -p ~/.claude/skills && cp -r TRAP/skills/trap ~/.claude/skills/
# …或项目级 —— 仅限你当前所在的 repo:
mkdir -p .claude/skills && cp -r /path/to/TRAP/skills/trap .claude/skills/
```
**工作原理:** Claude Code 会自动发现 `.claude/skills/` 中任何包含 `SKILL.md` 的文件夹。TRAP 的 `SKILL.md` 在其 frontmatter 中包含一个 `description`,告诉 Claude *何时*使用它 —— 因此,像*“运行 TRAP”*、*“在我发布前审计这个”*或*“这具备生产就绪条件吗?”*这样的请求会自动激活它,然后它会从 `PROMPT.md` 执行完整的方法。以后只需在你克隆的副本中快速执行一下 `git pull` 即可更新,然后重新运行 `cp`。
然后只需提出要求 —— *“运行 TRAP”*、*“为生产环境审计此项目”*、*“在我发布前进行安全审查”* —— Skill 就会被激活并运行完整的审计。该 Skill 使用与 [`TRAP.md`](TRAP.md) 完全相同的规范方法;[`skills/trap/PROMPT.md`](skills/trap/PROMPT.md) 是它的一个镜像。
## 👀 观察其实际运行
好奇 TRAP 真正能输出什么?**[阅读完整的审计示例 →](docs/EXAMPLE-AUDIT.md)** —— 这是一个针对虚构的 Next.js + Supabase + Stripe 应用进行的演示运行,展示了输出的每个部分:字母评级、部署阻碍、发现表格、精确的 diff、修复路线图以及最终结论。
它展示了使 TRAP 与众不同的规则 —— 将 `NOT PRESENT` 视为一个发现,将*存在但未被证明*的 RLS 策略标记为严重,以及你可以自己重新运行的验证附录。
## 🧭 工作原理:11 个阶段
TRAP 强制执行先构建后破坏的序列。在对系统进行建模之前,它不会审查控制项,并且它不会停留在正常路径上。
| # | 阶段 | 作用 |
| :-: | :-- | :-- |
| **1** | 🗺️ **理解系统** | 映射每个组件、提供商、信任边界和**数据驻留**区域 —— 附带文本架构图。在模型基于文件建立基础之前不进行审查。 |
| **2** | 🎯 **威胁建模** | 命名*此应用*的关键资产、威胁参与者和攻击面。随后的每一个发现都会追溯到这里的某个威胁。 |
| **3** | 🛡️ **安全审查** | OWASP Top 10 + 现代 SaaS:认证、授权/IDOR、数据库/RLS、API、注入(源到 sink 的污点追踪)、前端 XSS、密钥拆分、**密码学**、上传、**AI 安全**、支付、速率限制、Bot 防护、基础设施、DevOps。 |
| **4** | ⚖️ **隐私与合规** | GDPR/CCPA,数据清单 + 驻留,针对处理者 PII 的 DPA,保留/删除 —— 所有这些都标记给法律顾问,绝不宣称“合规”。 |
| **5** | 💥 **故障测试** | 非正常路径:篡改的 JWT、锁定、枚举泄露、路径遍历、竞态条件、重放。将每个经典测试映射到其对应的 magic-link/OAuth 等价物。 |
| **6** | 🗡️ **攻击模式** | 成为对手。根据可能性 · 影响 · 难度 · **检测** · 缓解措施对每次攻击进行评分。 |
| **7** | ⚡ **性能与规模** | N+1 问题、索引、缓存、连接池、bundle 大小 —— 将“在发布负载下失败”与“在增长时失败”区分开来。 |
| **8** | 🧹 **代码质量** | 架构、技术债务、**测试覆盖率**(如果没有则不存在)、错误处理、配置规范性。 |
| **9** | 🔌 **代码库外控制** | 源码无法证明的事情:付费 API 的硬性限制、账单警报、**密钥轮换**、备份恢复测试、生产环境监控。✅ 已确认 或 ❓ 未知 —— 绝不敷衍。 |
| **10** | 📋 **发布检查清单** | 30 多项上线检查项,每项都带有证据的 ✅ / ❌ / ❓ 标记。 |
| **11** | 🤖 **自动化交叉检查** | 将 `npm audit` / `gitleaks` / CodeQL 与人工流程进行核对 —— 并解决所有分歧。 |
接下来是**输出格式**(执行摘要 → 发现表格 → 精确的代码 diff → 优先级路线图 → 记分卡 → 最终结论)、**自我挑战**以及**修复循环**。
📄 查看 TRAP 生成的最终输出格式
1. **执行摘要** — 字母评级 + 部署建议 + 最重要的一条原因。
2. **严重问题** — 首先列出每个阻碍因素,以及一行修复方法和它所导致的威胁。
3. **发现表格** — 严重性 · 置信度 · 类别 · 问题 · 结论 · 证据 (`file:line`) · 修复。
4. **精确的代码变更** — 符合你的技术栈和约定的真实 diff。
5. **优先级修复路线图** — *接触真实客户数据前必须做* · *公开发布前应该做* · *发布后可以做*,每项都附带 S/M/L 工作量。
6. **未知 / 运营项** — 所有无法验证的内容,以及如何验证它们。绝不转换为通过。
7. **验证附录** — 精确的命令/grep/查询,以便另一位工程师可以独立重现结果。
8. **最终记分卡** — 安全性、架构、性能、可靠性、可维护性、隐私、DevOps、生产就绪度、测试、总体(1-10 分)。
9. **最终结论** — *“你会亲自批准在一家年营收数百万美元的公司投入生产环境吗?”*
## 🧰 哪些工具兼容它?
TRAP 是纯文本的 —— 它可以在任何能够粘贴提示词并赋予模型 repo 访问权限的地方运行。它在助手拥有**真正的文件访问权限**的环境中表现最为出色:
| 工具 | Repo 访问权限 | 备注 |
| :-- | :-: | :-- |
| **Claude Code** | ✅ 完全 | 理想之选 —— 真正的文件系统访问权限,为阶段 11 运行 `npm audit`/`gitleaks`,并可作为 [skill](#-or-install-it-as-a-skill-auto-activates) 安装。 |
| **Cursor / Windsurf** | ✅ 完全 | 将其指向工作区;非常适合按文件引用的规则。 |
| **GitHub Copilot Chat** | ✅ 工作区 | 使用 `@workspace` 以便它读取真实文件。 |
| **Cline / Aider / OpenAI Codex CLI** | ✅ 完全 | 任何具有 repo 访问权限的 Agentic IDE 或 CLI 都能很好地工作。 |
| **Lovable / Bolt.new / v0 / Replit** | ⚙️ 导出或连接 | 这些 AI 应用构建器生成*代码 —— 而生成的代码正是 TRAP 旨在审计的内容。将项目同步到 GitHub(或导出它),并从具有真实读取权限的助手中运行 TRAP,或者将文件树粘贴到构建器的聊天中。 |
| **ChatGPT / Claude.ai / Gemini (网页版)** | ⚠️ 粘贴式 | 可用,但你必须粘贴文件树 + 内容。规则 0 会要求这样做。 |
## 🗂️ 仓库布局
```
TRAP/
├── README.md ← you are here
├── TRAP.md ← the canonical prompt (latest)
├── skills/trap/ ← install as a Claude Code Agent Skill
│ ├── SKILL.md ← skill manifest + activation triggers
│ └── PROMPT.md ← mirror of the canonical method
├── prompts/
│ └── TRAP-v2.0.0.md ← versioned snapshots
├── docs/
│ └── EXAMPLE-AUDIT.md ← what a TRAP run looks like
├── CHANGELOG.md ← what changed between versions
├── CONTRIBUTING.md ← how to propose improvements
├── LICENSE ← MIT
└── .github/ ← issue templates, funding
```
## 📜 许可证
[MIT](LICENSE) © [bikr](https://github.com/bikr)。使用它,fork 它,为你的团队改编它。感谢注明出处,但非强制要求。
**别带着期望发布。带着证据发布。**
标签:AI安全, Chat Copilot, DLL 劫持, pocsuite3, 代码审查, 大语言模型, 提示词工程, 策略决策点, 软件测试