.env ファイルが公開されていると何が起きるか。なぜ「危険」と言われるのか
パスワードや外部サービスの鍵をまとめて書く、サイトの設定ファイル。
ひとことで
.env(ドットエンブ)ファイルは、サイトを動かすのに必要な秘密の値をまとめて書いておく設定ファイルです。中身はたとえば、データベース(顧客情報などの保存先)のパスワード、メール送信サービスや決済サービスの鍵(API キー)などです。Laravel などのしくみで作られたサイトでよく使われます。
本来はサーバーの中だけで使い、外からは見えない場所に置くものです。
見えていると何が起きるか
https://example.co.jp/.env のようなアドレスで中身が表示されてしまうと、そこに書かれたパスワードや鍵を誰でも読めます。読んだ人は、データベースの中身を持ち出したり、会社のメール送信サービスを使って迷惑メールを送ったり、契約しているクラウドサービスを勝手に使ったりできます。
.env の置き場所を探して回る自動の仕組みは広く使われているため、見えている期間が長いほど、読まれている可能性は高くなります。
自社は該当するか
ブラウザで自社のドメインの後ろに /.env を付けて開き、「404 Not Found(見つかりません)」や「403 Forbidden(見せられません)」と出れば、外からは見えていません。文字がずらりと表示された場合は該当します。無料診断でもこの確認をしています。
.env を使っていないサイト(WordPress の多くなど)でも、同じように .git(ソースの履歴)や phpinfo.php(サーバー情報)が見えていないかを合わせて確認しておくと安心です。
頼み方
見えていた場合は、制作会社・保守担当に「/.env が外から読める状態でした。見えないように設定したうえで、中のパスワードと API キーをすべて新しいものに取り替えてください」と伝えます。
よくある質問
.env が 404 でした。問題ありませんか。
404 は「そのアドレスにファイルは無い(見せていない)」という意味で、望ましい状態です。この項目については指摘はありません。
見えていた場合、ファイルを消せば済みますか。
外から見えないようにするだけでは足りません。すでに誰かに読まれた可能性があるため、中に書かれていたパスワードや鍵を新しいものに取り替える作業が必要です。
自社のサイトで確かめる
ドメインを入れるだけで、この記事に出てきた項目が外からどう見えているかを無料で点検できます。設定は変えません。結果はその場で出ます。