lbcdsg

我啟動這個專案,是因為 vibe coding 讓初學者可以在還沒學會機密管理、前端 bundle 或 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 與經過遮蔽的範例,千萬不要張貼真實憑證。如果可能已暴露真實金鑰,請先撤銷或輪替金鑰。

即使是簡短說明哪裡出錯的報告,也比一句客氣的「看起來很酷」對我更有幫助。