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

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

スポンサーリンク

記事内に広告が含まれています。
吹き出しのイメージ

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

皆さんはプログラミングを行う際に、セキュリティ対策を行なっていますか?

セキュリティ対策といってもさまざまありますが、今回は開発者がプログラミングをする上で必ず注意しなければならない環境変数について紹介します。

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

  • 環境変数とは
  • ハードコードはNG
  • 環境変数の設定方法
  • 本番環境

最後までご覧いただき、参考にしていただけると幸いです。

スポンサーリンク

環境変数とは

環境変数は、フレームワーク特有の変数や機密情報などをソースコードに直接記述せずに、外部から設定するための変数です。

機密情報とは、APIのキーやデータベースのユーザー名、パスワードなど、まさに機密性の高い情報のことを指します。これらの情報を環境変数に格納することで、ソースコードに直接含めることなく、プログラムが動作する環境に応じて柔軟に設定を変更することができます。

スポンサーリンク

ハードコードはNG

機密情報などを直接ソースコードに記述することは、いわゆるハードコードと呼ばれますが、これは非常に危険な行為です。

開発者であれば、開発したプロダクトをネットに公開したり、GitHubで公開したりすることもあると思います。その際にデータベースのキーなども一緒に公開されていたらどうでしょうか?見つけた他人は自由にデータベースを操作できるようになってしまいます。

一度でも流出してしまえば、それは情報漏洩です。これを防ぐためにも、機密情報は環境変数として管理し、ソースコードに直接書かないようにしましょう。必ず注意が必要です。

スポンサーリンク

環境変数の設定方法

次に、環境変数の設定方法を紹介します。今回は私が普段使用するNext.js、Laravelの設定方法について説明します。ただし、どのフレームワークも大抵は似たような設定方法なので参考にしてみてください。

大前提として、通常は環境変数のファイルとしてプロジェクトのルートに.envファイルを用意します。

今回は、以下のようにAPIキーをハードコードしてしまっている状況から、これを環境変数として読み込む方法について紹介します。

const API_KEY = xxxxxx;
$API_KEY = xxxxx;

xxxxxをAPIキーと仮定しています。

Next.jsの場合

まずはNext.jsの場合です。

プロジェクトのルートにある.envファイルに以下のように環境変数を設定します。

NEXT_PUBLIC_API_KEY = xxxxx;

そして、ハードコードしていた場所で環境変数を読み込みます。

const API_KEY = process.env.NEXT_PUBLIC_API_KEY;

process.envを使用することで、環境変数を読み込むことができます。

Laravelの場合

次にLaravelの場合です。

Next.jsの場合と同様に.envファイルに環境変数を設定します。

ENV_API_KEY = xxxxx;

そして、ハードコードしていた場所で環境変数を読み込みます。

$API_KEY = env('ENV_API_KEY');

env()関数を使用することで、環境変数を読み込むことができます。

スポンサーリンク

本番環境

前のステップで作成した.envファイルですが、これは当然GitHubなどのソースコード管理ツールにpushしてはいけません。必ず.gitignoreファイルを使用して除外する必要があります。

# .envの追跡を除外
.env

ただし、VercelなどのホスティングツールはGitHubと連携してソースコードを元にプロジェクトをデプロイしています。その場合、.envファイルの環境変数を除外してしまうと正しく動作しません。

ではどうするのか?Vercelなどのホスティングツールには必ず環境変数を手動で設定する場所があります。必ずそこから設定するようにしましょう。

もう一度言いますが、ソースコード管理ツールに.envファイルを絶対にpushしてはいけません。これを徹底することで、セキュリティを保つことができます。

スポンサーリンク

最後に

ここまで環境変数についてや設定方法について紹介しました。

環境変数を設定することは非常に重要で、徹底する必要があることを理解できたのではないかと思います。

誤ってpushしてしまう可能性もあるので、重要なキーなどは最初から.envに記述するように注意するべきだと筆者は思います。

1度でもネットに公開されれば、それは情報漏洩です。注意してくださいね。

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

スポンサーリンク

シェアする

フォローする

リアル大学生 - にほんブログ村人気ブログランキング

スポンサーリンク