ホームページ  >  記事  >  バックエンド開発  >  PHP プログラムの機密情報について何に注意する必要がありますか?

PHP プログラムの機密情報について何に注意する必要がありますか?

WBOY
WBOYオリジナル
2016-07-25 08:54:32750ブラウズ
  1. return array(
  2. 'database' => array(
  3. 'host' => '192.168.0.1',
  4. 'user' => '管理者',
  5. 'パスワード'=>' e1bfd762321e409cee4ac0b6e841963c '、
  6. );コード バージョン ウェアハウスの読み取り許可を取得します。許可されると、データベース アドレス、ユーザー名、パスワードなどの機密情報が公開されます。もちろん、設定ファイルをコードバージョンリポジトリに保存することはできませんが、それを説明するドキュメントを作成することはできませんが、コード自体が不完全になるため、この方法は好きではありません。
  7. このような問題を解決するにはどうすればよいですか? 最も直接的な方法は、コードから機密情報を削除し、別の場所に保存することです。いったいどこに保存されているのでしょうか? nginx の fastcgi_param を介して設定するなど、多くのオプションがあります。

return array(

'database' => array(

'host' => $_SERVER['DATABASE_HOST'],

'user' => $_SERVER[' DATABASE_USERNAME'],
'password' => $_SERVER['DATABASE_PASSWORD'],
),
    );
  1. ?>
  2. コードをコピー
  3. さらに、次の env コマンドを渡すこともできます。 php-fpm 設定するには:
  4. 環境[データベース_ホスト] = 192.168.0.1 env[DATABASE_USERNAME] = 管理者 env[DATABASE_PASSWORD] = e1bfd762321e409cee4ac0b6e841963c
  5. 注意すべき点は、この設定はメイン設定ファイル php-fpm.conf に配置する必要があり、include ディレクティブによって設定されたサブ設定ファイルには配置できないことです。そうしないと、「配列は許可されていません」というエラーが報告されます。グローバル セクション内"; さらに 1 つ、env を通じて設定されていますが、結果は $_ENV ではなく $_SERVER にあります。
  6. 注: @Laruence さんから、nginx の fastcgi_param で設定情報を設定すると、nginx が php とやり取りする際に大量のデータが転送されることを思い出しました(そのため、php-fpm の env で設定した方が比較的有利なようです)。 , ニアオ兄弟は、「hidef」などの独立した拡張子を使用することを提案しています。
nginx および php-fpm 設定ファイルを使用して問題を解決する場合は、Web でのみ有効ですが、$_SERVER で関連情報を取得できません。は難しいことではありません。一般的なスクリプトを使用して nginx または php-fpm 設定ファイルを照合することができ、この情報をコマンドライン環境に動的にマッピングすることができます。 残りの作業は、nginx または php-fpm 設定ファイルのセキュリティを確保する方法です。ただし、コードと比較して、nginx または php-fpm 設定ファイルは多くの人に権限を与える必要がないため、管理が比較的簡単です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。