ブログで個人情報を漏らさない方法

この記事では、ブログ執筆中に個人のプライバシーを保護し、機密情報の漏洩を防ぐための実用的なテクニックとベストプラクティスを紹介します。

無料のオープンソースプラットフォームである GitHub Pages は人気があり、多くのブログが GitHub Pages を使用して公開しています。
しかし、無料版では公開リポジトリでのみ公開アクセスが許可されています。リポジトリが公開されると、草稿としてマークされた記事もGitリポジトリからアクセスできてしまいます。 公開されている記事にはあまり機密情報が含まれていませんが、オープンソースブログのソースリポジトリは個人情報を漏らす可能性があります。以下はよくある情報漏洩のキーワードで、コメントで追加していただけると嬉しいです。

感度のあるキーワード

中文キーワード 英文キーワード
パスワード password
アカウント account
身分証 id
銀行カード card
アリペイ alipay
WeChat wechat
電話番号 phone
住所 address
勤務先 company
社会保険カード card
運転免許証 driver
パスポート passport
クレジットカード credit
キー key
設定ファイル ini
資格情報 credential
ユーザー名 username

正規表現検索:

(パスワード|アカウント|身分証|銀行カード|アリペイ|WeChat|電話番号|住所|勤務先|社会保険カード|運転免許証|パスポート|クレジットカード|username|password|passwd|account|key\s*:|\.ini|credential|card|bank|alipay|wechat|passport|id\s*:|phone|address|company)

VSCode をブログエディタとして使用している場合、正規表現検索を使用して全サイト検索を行い、情報漏洩の可能性がある場所を素早く確認できます。

Gitの履歴

Gitの履歴には情報漏洩の可能性があり、シンプルなスクリプトでオープンソースブログの履歴コミット情報をスキャンできます。

自分のリポジトリの場合は、以下の方法で履歴をクリアできます。履歴情報を残す必要がある場合は、クリアしないでください。

以下のコマンドの意味を理解していることを必ず確認してください。履歴を消去するので、慎重に操作し、操作前に重要なデータをバックアップしてください。

git reset --soft ${first-commit}
git push --force

その他のリポジトリスキャン方法

https://github.com/trufflesecurity/trufflehog

  • 漏洩した認証情報の検出、検証、分析
  • 17.2k stars
  • 1.7k forks

img

他のブログ公開方法

  • Github Pro ではプライベートリポジトリを Pages に公開できる、Pro は月4ドル
  • プライベートリポジトリに設定し、Cloudflare Pages に公開
  • リポジトリを分ける、プライベートリポジトリには編集中の記事を保存し、公開リポジトリには公開可能な記事を保存

ブログが github に依存する giscus のようなコメントシステムを使用している場合、公開リポジトリは依然として必要です。

良い習慣 vs 良い仕組み

オープンソースブログでの個人情報漏洩の問題について議論する際、多くの人が敏感な情報をリポジトリにアップロードしないように注意すれば問題ないと考えます。

これは役に立たない無駄な言葉で、プログラマーにバグを書かないように要求するのと同じくらい正しくても無意味です。習慣に頼って個人情報を保護するのは信頼できないです。簡単に他人の習慣を信じないでください、彼はいつ忘れるかわかりません。

執筆中には一時的な文が含まれることがあり、特にプログラマの技術ブログでは、短いスクリプトがすぐに書かれることがあり、必ずしも環境変数を使用することを忘れないとは限りません。そのため、敏感な情報が残る可能性は必ずあります。

良い習慣が何かを理解している人が多いと思いますので、ここでは良い習慣については議論しません。主に仕組みで個人情報漏洩を防ぐ方法を共有します。

まずリポジトリを分けることです。原稿リポジトリと公開リポジトリを分けることで、Github Pages に公開されたすべての記事が審査済みで、draft 状態の記事が漏れることはありません。

また Github Action を使用して、コミットごとに敏感な情報をスキャンし、敏感な情報がある場合はコミットを許可しないようにすることもできます。詳細は trufflehog を参照してください。

この記事で共有した正規表現検索は、シンプルな例示であり、何らかのプロセスに統合されていません。自分のニーズに合わせてさらにカスタマイズし、プロセスに統合することもできます。

参考