我启动这个项目是因为 vibe coding 让初学者在真正了解机密、
前端打包或 Git 历史之前就能跑通应用。
一个值存在于 .env 中并不意味着它始终保持私有。诸如 VITE_*、NEXT_PUBLIC_* 和 REACT_APP_* 这类变量可以进入浏览器代码。而且如果一个 API 密钥曾经被提交过,仅从当前文件中删除它并不能从 Git 历史中清除它。
因此我构建了 Wardrail,一个小型开源安全检查工具:
npx wardrail scan --history
Enter fullscreen mode Exit fullscreen mode
它会扫描当前项目以及 Git 历史的有界部分。它还会检查 MCP 配置和 Agent 指令文件中是否存在高风险命令、凭证访问和安全绕过模式。
Wardrail 默认在本地运行。它不会上传源代码,也不会执行被扫描的项目。
当前版本包含的功能
[email protected]- 17 条可解释的静态规则
- 38 个自动化测试
- 终端、JSON 和 SARIF 输出
- 支持 Pre-commit 和 GitHub Code Scanning
为什么我认为这对初学者很重要
AI 编程工具能帮助某人快速发布有用的应用,但速度也可能掩盖安全假设:
-
.env被视为自动私有 - 前端公共变量被误认为是服务端机密
- 删除的密钥被假定已从 Git 历史中消失
- 未阅读其命令就信任第三方 MCP 服务器或 Agent Skill
Wardrail 旨在成为推送或发布前的早期预警。它解释匹配的证据并建议修复,而不是只返回一个风险分数。
诚实的局限性
这仍是一个早期项目,我还没有外部用户可以指向。它可能会产生误报并遗漏风险。它不是渗透测试,干净的报告并不意味着应用是安全的。
它目前不测试身份验证、授权、数据库策略、依赖漏洞、部署设置或运行时行为。Gitleaks 和 TruffleHog 仍是更成熟的广泛机密发现工具。
我正在寻找首批真实测试者
仓库和 CLI 演示:
https://github.com/3196973848/wardrail
最有帮助的反馈是:
- 哪条规则过于嘈杂或令人困惑?
- 它错过了哪种密钥格式或风险模式?
- 针对初学者的建议修复是否易于理解?
- 接下来应该支持哪些 MCP 或 Agent 配置?
请仅分享规则 ID 和脱敏示例——切勿发布真实凭证。如果真实密钥可能已泄露,请先撤销或轮换它。
即使是一份简短的失败报告,对我来说也比礼貌地说“看起来很酷”更有用。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.