学習
セキュリティ超入門:.env と APIキーは何が危なくて、どう守るのか
「セキュリティは大事と聞くけど、まず何から?」という個人開発者向けの最初の一歩。.env とは何か、APIキーが漏れると何が起きるか(不正課金の流れ図解つき)、そして今日からできる最小限の守り方4つを、専門用語をかみ砕いて順番に説明します。怖がらせず、手を動かせる形で。
「セキュリティは大事と聞くけど、何から手をつければ?」——そんな個人開発者のための、いちばん最初の一歩です。怖がらせるためでなく、今日から手を動かせることだけを、順番に説明します。
なぜ「秘密の値」から始めるのか
実際に起きる事故の多くは、高度な攻撃ではなく**「秘密の値が漏れた」**ことから始まります。ITDが出発点にしている2つの事例も、どちらも秘密の漏洩でした:
つまり、秘密の値を守れれば、よくある事故の大半は防げます。だからここから始めます。
.env とは(30秒で)
.env(ドットエンブ)は、アプリが使う秘密の値をまとめた設定ファイルです。データベースのパスワード、外部サービスのAPIキー、セッションを暗号化する鍵などが入っています。1つのファイルに鍵が集まっているぶん、漏れると一気に全部漏れるので最優先で守ります(→ 用語:.env とは)。
APIキーが漏れると何が起きるか
APIキーは「あなたとして外部サービスを使うための合鍵」です。これが他人の手に渡ると、こう連鎖します。
盗まれたキーは時間差で売買・悪用されることが多く、「漏れた直後は何も起きない→後日いきなり請求」というパターンが典型です。だから「気づいてから」では遅く、最初から漏らさないことが肝心です。
今日からできる4つの守り方
むずかしいことは要りません。まずこの4つだけ。
公開しない
.env やアプリ本体を、Webで見えるディレクトリ(公開ルート)に置かない。公開するのは public/ だけ。レンタルサーバーでの具体手順は この記事。
コミットしない
.gitignore に .env* を入れる(!.env.example は許可)。値の入っていない見本だけ共有。一度コミットすると履歴から復元できるので最初から入れない。
漏れたら全部替える
1個だけでなく、漏れた可能性のある鍵を全部ローテーション。優先順は「外部API・OAuth → 暗号鍵 → メール → DB」。見られた前提で動く。
自己点検する
自分のサイトで /.env が外から開けないか、ときどき確認する(下記)。
自己点検(自分の所有ドメインにだけ)
# 200 で本文が返ったら公開されている。403/404 なら一旦OK
curl -sI https://あなたのドメイン/.env | head -1
curl -sI https://あなたのドメイン/.git/config | head -1公開のたびにこれを確認する癖をつけると、配置ミスを早期に発見できます。
やりがちな失敗 vs 正しい一歩
やりがち
- とりあえず動いたから
.envを public 直下に置く - 「あとで消すから」と
.envを一度gitに入れる - 悪用が見えた1個の鍵だけ替える
正しい一歩
- 本体は公開ルートの外、
public/だけ公開 - 最初から
.gitignoreで.envを除外 - 漏れたら env の鍵を全部ローテーション
次のステップ
ここまで来たら、次は「自分のスタックの危ない初期設定」と「公開済みの脆弱性(CVE)に後れを取らないしくみ」です。焦らず1つずつ。
次に読む
- 用語:.env とは / CVE とは / RCE とは
- 対策:レンタルサーバーで .env を公開しない / Next.js のCVE追従
- 事故:APIキーが盗まれて不正課金された話
よくある質問
Qセキュリティの勉強、何から始めればいい?
まず『秘密の値(.env と APIキー)を漏らさない』ことから。多くの実際の事故はここから起きています。公開しない・gitにコミットしない・漏れたら全部入れ替える・たまに自己点検する、の4つで大半を防げます。
QAPIキーが漏れると具体的に何が起きる?
他人があなたになりすまして外部サービスを使えます。よくあるのが不正課金(あなたの請求で大量利用される)や、データの読み書きです。漏れたキーは時間差で売買・悪用されることも多いです。
Q.env はgitに入れていい?
いけません。.gitignore に .env* を入れ、値を空にした .env.example だけを共有します。一度コミットすると、後で消しても git の履歴から復元できてしまいます。