我啟動這個專案,是因為 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 與經過遮蔽的範例,千萬不要張貼真實憑證。如果可能已暴露真實金鑰,請先撤銷或輪替金鑰。
即使是簡短說明哪裡出錯的報告,也比一句客氣的「看起來很酷」對我更有幫助。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.