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

サムネイル
2024年7月18日2025年2月10日
記事内に広告が含まれています。
吹き出しのイメージ

環境変数ってなんだろう。重要なもの?

開発をする際に、セキュリティ対策は行なっていますか?

セキュリティ対策といっても様々ですが、今回は開発をする上で必ず注意しなければならない環境変数について紹介します。

ステップは以下の通りです。

  • 環境変数とは
  • ハードコードは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度でも外部に公開されれば、それは情報漏洩です。注意してくださいね。

ここまでお読みいただき、ありがとうございました。

スポンサーリンク

シェアする
フォローする
応援する
にほんブログ村人気ブログランキングFC2ブログランキング
BuyMeaCoffee
もしこの記事が役に立ったなら、
こちらから ☕ を一杯支援いただけると喜びます
ブログ運営者
筆者
あらた
  • 21歳
  • 千葉県在住
  • 文系大学生|26卒
  • 経営学部 マーケティング学科
  • Webエンジニアインターンに参加中
  • インターン:Vue.js, Laravel
  • 個人開発:Next.js

スポンサーリンク

スポンサーリンク

アーカイブ
BuyMeaCoffee
もしこの記事が役に立ったなら、
こちらから ☕ を一杯支援いただけると喜びます

スポンサーリンク