ハードコードされた認証情報

ハードコードされた認証情報

説明

パスワード、クライアントシークレット、APIキーをソースコードに直接保存すると、コードの漏えい時に悪用されるおそれがあります。

想定される影響

サービスアカウントの乗っ取り、APIの悪用、権限昇格につながる可能性があります。

対処方法

Secret Managerなどでシークレットを保護し、必要に応じて実行時の環境変数で供給してください。露出した値は失効・再発行し、利用するアプリケーションにも新しい値を適用してください。

例

この例は供給済みの環境変数を読み取ります。必須の値を検証し、存在しない場合や空の場合は起動を中止してください。環境変数や設定ダンプにアクセスできる主体も制限してください。

変更前

php
<?php
$client_secret = "ABigLongSecret";

変更後

php
<?php
$client_secret = getenv('CLIENT_SECRET');

説明:

  • 変更前: パスワード、クライアントシークレット、トークンなどをPHPソースへハードコードしています。
  • 変更後: 実行時に供給されたシークレットを読みます。保存先と供給経路を保護し、露出した値は失効させ、利用側にも新しい値を適用してください。

参考資料