【はーどこーでぃんぐ】
ハードコーディング とは?
最終更新:
💡 コードに固定する値は、変更と秘密を考える
設定値や動作をソースコードに固定して記述すること。特に環境ごとに変わる値や秘密情報の埋め込みは問題になります。すべての定数が悪いわけではなく、変更の必要性と情報の性質で判断します。
📌 このページのポイント
ハードコーディングって何?
接続先や設定値などを、コードの中に固定して書くことだよ。開発用のURLを固定して本番で変える必要があれば、コードを修正することになる。どんな値を固定しているかが大切なんだ。
定数に名前を付ければ解決?
全部の値を外部に出すべき?
そうとは限らない。環境ごとに変わらない内部の規則などはコードで表すこともある。変わる設定は環境変数や設定ファイルなどに分け、秘密情報はアクセスを制限した管理の仕組みで扱おう。外部化しても入力の検証は必要だよ。
秘密を.envへ移せば安全?
誤って公開したらコードを消せばよい?
消すだけでは、履歴やコピーに秘密が残るかもしれない。まず影響を調べて漏洩した認証情報を失効・更新し、履歴や配布物、利用状況も確認する。秘密管理の仕組みと権限を見直して再発を防ごう。
もっと詳しく知りたい人へ
設定ファイルに置けば秘密管理も完了?
公開リポジトリや配布物に含めれば、外部ファイルでも秘密は漏れます。読み取り権限、暗号化、取得時の認証、ローテーション、ログに残さないことなどを確認します。秘密の置き場所を変えるだけでなく、ライフサイクルを管理する必要があります。
まとめ:ざっくりこれだけ覚えればOK!
「ハードコーディング」って出てきたら「コードへの固定記述」と思えばだいたいOK!
📖 おまけ:英語の意味
「Hardcoding / Hard-coding」 = コードへの固定記述
💬 ここでは値や振る舞いをコードに直接固定することです。すべての固定値を同じ危険として扱わず、変更の必要性と公開してよい情報かを確かめます。