lbcdsg

我启动这个项目是因为 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 和脱敏示例——切勿发布真实凭证。如果真实密钥可能已泄露,请先撤销或轮换它。

即使是一份简短的失败报告,对我来说也比礼貌地说“看起来很酷”更有用。