11

データベース接続の接続設定(ホスト、dbname、ユーザー、パスワードなど)はどこに置きますか?データベースのクラスまたはファイルに配置されていますか、それとも構成ファイルの外部に配置されていますか、それとも他の場所に配置されていますか?

4

4 に答える 4

5

理想的には、構成ファイルに配置する必要があります。これは、PHP 配列のような単純なものにすることができます。

例: db_config.php

$db_config = array(
  'host' => 'localhost',
  'user' => 'username',
  'password' => 'qwerty'
);

次に、セキュリティを最大限に高めるために、このファイルをドキュメント ルートの外に配置する必要があります。このようにして、Web ホストが失敗し、PHP ファイルをテキスト ファイルとして提供し始めた場合 (実際に発生した場合)、誰も DB 資格情報を取得できません。

于 2012-11-11T06:27:31.543 に答える
3

さまざまな方法で行うことができますが、一般的なのは設定ファイルに入れ、そのファイルを webroot の外に置いて、データベースのパスワードに関する情報が誤って web に漏洩しないようにすることです。

于 2012-11-11T06:27:06.683 に答える
2

PostgreSQL の場合、私はpg_service.conf. すべての接続固有の設定 (ホスト名、データベース名、ユーザー名、パスワードなど) を入れ~/.pg_service.confたり、/etc/postgresql-common/pg_service.conf共通の名前 (サービス名) を付けたりすることができます。

これで、データベースに接続したいプログラム (Perl、PHP など) は"service=name"、接続文字列として指定するだけで済みます。

私の知る限り、MySQL にはファイル~/my.cnfまたは/etc/my.cnfファイルに対して同様のメカニズムがあります。

于 2012-11-11T07:02:07.300 に答える