秘密情報を漏らさない基本とは、APIキー、パスワード、秘密鍵、個人情報を、コード、README、画像、チャット、公開リポジトリに載せないことです。
一言でいうと
秘密情報は「あとで消せばよい」ではなく、最初から公開場所に置かないことが重要です。
秘密情報の例
| 種類 | 例 |
|---|---|
| APIキー | 外部サービスを使うためのキー |
| パスワード | ログイン用の文字列 |
| 秘密鍵 | SSH秘密鍵、証明書の秘密鍵 |
| トークン | GitHub token、アクセストークン |
| 個人情報 | 氏名、住所、電話番号、メール、学校名など |
| 接続情報 | DB URL、ユーザー名、パスワード |
これらは、公開リポジトリや記事サンプルに載せないようにします。
なぜ危険か
APIキーやトークンが漏れると、第三者に使われる可能性があります。
- 有料APIを勝手に使われる
- データを読まれる
- データを消される
- アカウントが停止される
- 追加料金が発生する
セキュリティの問題は、初心者か上級者かに関係なく起きます。
やってはいけないこと
const apiKey = "sk-xxxxxxxxxxxxxxxx";
このようにコードへ直接書くのは避けます。READMEやスクリーンショットに貼るのも危険です。
.env に入れた場合でも、.env をGitHubへ上げたら漏れます。
.env
通常は .gitignore に入れて、Gitの管理対象から外します。
基本の守り方
| 対策 | 目的 |
|---|---|
.env を使う | 設定値をコードから分ける |
.gitignore に入れる | 秘密情報ファイルをcommitしない |
サンプルは .env.example にする | キー名だけ共有する |
| 権限を最小にする | 漏れた時の被害を小さくする |
| 不要なキーは削除する | 使わない秘密情報を残さない |
注意: 一度GitHubにpushした秘密情報は、ファイルを消しただけでは履歴に残る場合があります。漏れたキーは削除ではなく、必ず無効化・再発行します。
よくある誤解
| 誤解 | 実際 |
|---|---|
| 個人学習だから狙われない | 公開リポジトリは自動で収集されることがある |
| すぐ消せば問題ない | 履歴やキャッシュに残る可能性がある |
.env なら安全 | Gitに上げたら漏れる |
| ダミーっぽい値ならよい | 本物かどうか第三者には分からない |
まとめ
秘密情報は、コードや公開記事に載せないことが基本です。APIキー、パスワード、秘密鍵、個人情報は、環境変数や管理画面で扱い、GitHubにpushしないようにします。漏れた場合は削除ではなく、無効化と再発行が必要です。