1

データベース資格情報を CMS に保存するためのベスト プラクティスは何ですか? 次に、データベース シングルトン クラスでそれらを宣言します。

$this->credentials = array("hostname"=>"hostname", "username"=>"username","password"=>"password", "database"=>"database");

しかし、どこを変更すればよいか探すのは直感的ではなく、あとで cms のインストール ファイルを作成する予定です。

接続設定をどこにどのように保存しますか?

4

3 に答える 3

1

CakePHPは、database.php(/ app / config /内)と呼ばれる構成ファイルを使用します。このファイルでは、DATABASE_CONFIGクラスが宣言されています。

class DATABASE_CONFIG {

    var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
    );

    var $test = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => 'password',
        'database' => 'test_database_name',
        'prefix' => '',
    );
}

これにより、ユーザーがすべてのデータベース構成を設定できる単一の場所が作成され、直感的なディレクトリ構造により、データベース構成が保存されている場所が明確になります。また、生産、開発、およびテストの目的で複数の構成を指定することもできます。これらの構成は簡単に切り替えることができます。

于 2009-04-03T07:36:00.853 に答える
1

原則として、クレデンシャルをソースコードに直接入れるのではなく、構成ファイルに保存します。これにより、たとえば、開発マシンからテストマシンに移動する場合に、それらを変更するのがはるかに簡単になります。テストマシンは、別のデータベースに接続する必要があります。

この設定ファイルは、webrootディレクトリの外部に保存する必要があります。

設定ファイルが危険にさらされた場合に備えて、セキュリティを少し強化するために、何らかの方法でパスワードを暗号化することもできます。一方、誰かがあなたのサーバーに物理的にアクセスした場合、あなたはとにかく困惑しているので、それは価値がないかもしれません。

于 2009-04-03T07:39:12.407 に答える
1

あなたが言ったように、あなたはシングルトンクラス、またはもっと単純なものを使うことができます。

すべてのconfig.inc.phpファイルには、標準の連想配列があります

$config['Main_Database'] = '';
$config['db_user'] = '';
$config['db_pass'] = '';
$config['db_host'] = '';

コンセプトは同じで、あなたは正しい方向に進んでいます。人間として、あなたにとって意味のあるものにしてください。誰かがあなたのサーバーにアクセスできるのなら、とにかくあなたは失敗するので、何がより安全であるかという点では大したことではありません。

インストールファイルに関しては、多くのアプリが構成ファイルを開き、コードを介していくつかの特定の部分を調整してから、実際にファイルをサーバーに書き直します(「設定を保存する」のではありません)。同じ結果が得られますが、手動ではなくウィザードを使用して実行されます。

于 2009-04-04T04:38:38.883 に答える