開源博客的潛在安全隱患:如何保護個人資訊不被洩露

概述

GitHub Pages 作為免費的開源博客託管平台,因其便捷性和免費特性而廣受歡迎。然而,其免費版本要求倉庫必須公開才能提供公開訪問服務,這一特性可能導致意想不到的資訊洩露風險。

即使文章內容本身不包含敏感資訊,但博客的原始碼倉庫可能會無意中洩露個人隱私資訊。本文將探討這些潛在風險,並提供實用的解決方案。

🔍 常見資訊洩露類型

中文敏感詞

以下中文詞彙可能包含敏感個人資訊,建議在提交代碼前進行檢查:

  • 密碼
  • 帳號
  • 身份證
  • 銀行卡
  • 支付寶
  • 微信
  • 手機號
  • 家庭住址
  • 工作單位
  • 社保卡
  • 駕駛證
  • 護照
  • 信用卡

英文關鍵詞

英文環境中需要特別注意以下關鍵詞:

  • username
  • password
  • account
  • key
  • ini
  • credential
  • card
  • bank
  • alipay
  • wechat
  • passport
  • id
  • phone
  • address
  • company

使用正則表達式進行檢測

可以使用以下正則表達式來掃描倉庫中的潛在敏感資訊:

(密碼|帳號|身份證|銀行卡|支付寶|微信|手機號|家庭住址|工作單位|社保卡|駕駛證|護照|信用卡|username|password|passwd|account|key\s*:|\.ini|credential|card|bank|alipay|wechat|passport|id\s*:|phone|address|company)

在 VSCode 中進行掃描

如果您使用 VSCode 作為博客編輯器,可以按照以下步驟進行全站敏感資訊掃描:

  1. 打開 VSCode
  2. 使用快捷鍵 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(Mac)打開全局搜索
  3. 在搜索框中輸入上述正則表達式
  4. 啟用正則表達式模式(點擊搜索框旁的 .* 圖標)
  5. 點擊搜索,檢查結果中的潛在敏感資訊

VSCode 正則搜索示例

🕰️ Git 歷史中的資訊洩露

Git 的版本歷史記錄可能包含已刪除檔案的敏感資訊。即使當前代碼中沒有敏感內容,歷史提交中仍可能保留這些資訊。

掃描 Git 歷史

可以通過簡單的腳本掃描開源博客的歷史提交資訊,檢查是否存在資訊洩露。

清理 Git 歷史

如果確認需要清理 Git 歷史中的敏感資訊,可以使用以下方法:

⚠️ 重要提醒:執行以下操作將永久刪除 Git 歷史記錄,請務必備份重要數據,並確保完全理解命令的含義。

# 重置到第一個提交(保留工作區更改)
git reset --soft ${first-commit}

# 強制推送到遠程倉庫
git push -f

注意:如果您需要保留完整的提交歷史,請不要使用上述方法。

🛠️ 專業掃描工具推薦

除了手動檢查,還可以使用專業的工具進行更全面的掃描:

TruffleHog

TruffleHog 是一個強大的工具,用於發現、驗證和分析洩露的憑證資訊。

TruffleHog Logo

特點:

  • GitHub Star 數:17.2k
  • Fork 數:1.7k
  • 支援多種掃描模式
  • 可檢測深度嵌套的敏感資訊

🔒 安全發布博客的替代方案

如果您擔心公開倉庫帶來的安全風險,可以考慮以下替代方案:

1. 使用 GitHub Pro

  • GitHub Pro 支援將私有倉庫發布到 Pages
  • 費用:每月約 4 美元
  • 優點:保持原始碼私密性,同時享受 GitHub Pages 的便利

2. 使用 Cloudflare Pages

  • 將倉庫設置為私有
  • 通過 Cloudflare Pages 進行部署
  • 優點:完全免費,支援私有倉庫

3. 雙倉庫策略

  • 私有倉庫:存放正在編輯的文章和草稿
  • 公開倉庫:僅存放最終發布的文章
  • 優點:最大程度保護草稿和未發布內容
  • 注意:如果使用 giscus 等 GitHub 依賴的評論系統,仍需要一個公開倉庫

📝 最佳實踐建議

  1. 定期審查:定期使用掃描工具檢查倉庫中的敏感資訊
  2. 提交前檢查:在每次提交代碼前,檢查是否包含敏感資訊
  3. 使用 .gitignore:正確配置 .gitignore 檔案,排除敏感檔案
  4. 環境變數:將敏感配置存儲在環境變數中,而非代碼倉庫
  5. 草稿管理:考慮使用專門的草稿管理系統,避免草稿被意外提交

🎯 總結

開源博客雖然便捷,但確實存在資訊洩露的風險。通過使用適當的工具和方法,我們可以有效降低這些風險。選擇合適的發布平台和策略,可以在享受開源便利的同時,保護個人隱私安全。

記住,資訊安全是一個持續的過程,需要我們時刻保持警惕。

參考資源