前言

在現代軟體開發過程中,保護敏感資訊(如 API 金鑰、密碼)非常重要,而這些資訊可能不小心被包含在版本控制系統中。Yelp 的 detect-secrets 是一個專門設計用來在程式碼中檢測秘密資訊的工具,以下將介紹如何下載、安裝,並有效地使用它來進行檢測與維護。



1. 安裝 Yelp/detect-secrets

使用 pip 安裝

  1. 確保系統已安裝 Python(建議版本 3.7 以上)與 pip。
  2. 以管理者權限開啟命令提示自原,使用以下命令安裝 detect-secrets:
    pip install detect-secrets




驗證安裝

執行以下命令來驗證是否安裝成功:

detect-secrets --version

如果成功,應該會顯示工具的版本號。





2. 基本使用方法

產生 baseline 檔案

`baseline` 檔案是 detect-secrets 的核心,它包含了已檢測的秘密資訊及其忽略的依據。

  1. 在專案根目錄下執行以下命令產生 baseline 檔案:
    detect-secrets scan > .secrets.baseline
  2. 檢視 `.secrets.baseline` 的內容以確保沒有誤判。


檢測程式碼中的秘密資訊

執行以下命令來檢測專案中可能的秘密資訊:

detect-secrets scan

該命令會掃描目錄中的所有檔案並回傳檢測結果。





3. 調整與排除

排除特定檔案或目錄

可以使用以下設定來忽略不需要檢測的路徑:

{
    "exclude": {
        "files": ["test/", "docs/", "README.md"]
    }
}

或者在執行掃描時直接加上排除參數:

detect-secrets scan --exclude-files test/.*

調整敏感度

有時可能需要增加或減少檢測的敏感度,這可以透過指定 plugins 來完成。例如:

detect-secrets scan --plugin KeywordDetector




4. 審查與維護 baseline 檔案

審查 baseline 檔案

審查 baseline 是為了確保新增的秘密資訊是必要的且正確忽略。

  1. 使用以下命令進行審查:
    detect-secrets audit .secrets.baseline
  2. 工具會提供互動式介面讓你檢視每一個條目,確認是否為真正的秘密資訊。


更新 baseline

每次新增或移除敏感資訊時,更新 baseline 檔案:

detect-secrets scan --update .secrets.baseline


秘密資訊輪替與清理

當發現秘密資訊洩露或過期時:

  1. 立即輪替相關的憑證。
  2. 移除程式碼中已清除的秘密資訊,並更新 baseline。




結論

透過 Yelp/detect-secrets,你可以有效地檢測、追蹤與管理專案中的敏感資訊。記得定期更新與審查 baseline,並將檢測工具整合到開發流程中,提升整體的安全性與合規性。