【環境変数とは?】設定方法をわかりやすく解説【プログラミング】


環境変数ってなんだろう。重要なもの?
開発をする際に、セキュリティ対策は行なっていますか?
セキュリティ対策といっても様々ですが、今回は開発をする上で必ず注意しなければならない環境変数について紹介します。
ステップは以下の通りです。
- 環境変数とは
- ハードコードはNG
- 環境変数の設定方法
- 本番環境
最後までご覧いただき、参考にしていただけると幸いです。

スポンサーリンク
環境変数とは
環境変数は、フレームワーク特有の変数や機密情報などをソースコードに直接記述せずに、外部から設定するための変数です。
機密情報とは、APIキーやデータベースのユーザー名、パスワードなど、まさに機密性の高い情報のことを指します。これらの情報を環境変数に格納することで、ソースコードに直接含めることなく、プログラムが動作する環境に応じて柔軟に設定を変更することができます。
スポンサーリンク
ハードコードはNG
機密情報などを直接ソースコードに記述することは、いわゆるハードコードと呼ばれますが、これは非常に危険な行為です。
開発者であれば、開発したプロダクトをウェブで公開したり、GitHubで公開したりすることもあると思います。その際にデータベースのキーなども一緒に公開されていたらどうでしょうか?見つけた他人は自由にデータベースを操作できるようになってしまいます。
一度でも流出してしまえば、それは情報漏洩です。これを防ぐためにも、機密情報は環境変数として管理し、ソースコードに直接書かないようにする必要があります。
スポンサーリンク
環境変数の設定方法
今回は例として、私が普段使用するNode.js(Next.js, React, Vue.jsなど)と、Laravelでの環境変数の設定方法について紹介します。
大前提として、環境変数は「.env」ファイルで管理します。
以下のようにAPIキーをハードコードしてしまっている状況から、これを環境変数として読み込む方法について紹介します。
const API_KEY = xxxxxx;
$API_KEY = xxxxx;
※ xxxxxをAPIキーと仮定しています。
Node.jsの場合
まずはNode.js(Next.js, React, Vue.jsなど)の場合です。
プロジェクトのルートに.envファイルを作成し、以下のように環境変数を設定します。
API_KEY = xxxxx;
そして、ハードコードしていた場所で環境変数を読み込みます。
const API_KEY = process.env.API_KEY;
process.envを使用することで、「.env」ファイルから環境変数を読み込むことができます。
Laravelの場合
次にLaravelの場合です。
Node.jsの場合と同様に「.env」ファイルに環境変数を設定します。
API_KEY = xxxxx;
そして、ハードコードしていた場所で環境変数を読み込みます。
$API_KEY = env('API_KEY');
env()関数を使用することで、「.env」ファイルから環境変数を読み込むことができます。
スポンサーリンク
本番環境
前のステップで作成した「.env」ファイルですが、これは当然GitHubなどのソースコード管理ツールにpushしてはいけません。必ず「.gitignore」ファイルを使用して除外する必要があります。
# .envの追跡を除外
.env
Vercelなどのホスティングツールは、GitHubと連携して、ソースコードを元にプロジェクトをビルドしています。その場合、「.env」ファイルを除外してしまうと正しく動作しません。
ではどうするのか?
Vercelなどのホスティングツールでは、基本的にコンソール画面から環境変数を設定できるようになっています。必ずそこから設定するようにしましょう。
念を押しますが、ソースコード管理ツールに「.env」ファイルを絶対にpushしてはいけません。これを徹底することで、セキュリティを保つことができます。
スポンサーリンク
最後に
ここまで、環境変数やその設定方法について紹介しました。
環境変数を設定することは非常に重要で、徹底する必要があることを理解できたのではないかと思います。
1度でも外部に公開されれば、それは情報漏洩です。注意してくださいね。
ここまでお読みいただき、ありがとうございました。



スポンサーリンク
スポンサーリンク