2017-06-17 5 views
1

初めてフレームワークYii2を使用していますが、config \ db.phpにデータベースのパスワードをプレーンテキストで書き込むのが安全かどうか疑問に思っていましたか?または、データベースへのより安全なアクセス方法ですか?yii2 config db.php secure?

答えて

3

このファイルを一般ユーザーに公開しない限り、十分なセキュリティを確保する必要があります。

基本的に(パブリックユーザーに公開されていない限り)サーバー上の任意の場所に格納できますが、アプリケーションはデータベース接続に追加の遅延を与えないようにすばやく簡単に取得できる必要があります。

+0

いずれにせよ本当に@S Ranaと@ karpy47の答えは正しいので、私は答えとして受け入れました。 – MHogge

3

Gitを使用している場合は、パスワードを含むファイルをコミットすることは悪い考えです。 ...個人的に私はGitリポジトリの外にいくつかの重要なパスワードを使用して別のファイルを保持し、このように、値を取得するには、そのファイルを読み込むpasswords.iniは次のようになり

$ini = parse_ini_file('path/passwords.ini', true); 

return [ 
    'class' => 'yii\db\Connection', 
    'dsn'  => $config['db']['dsn'], 
    'username' => $config['db']['username'], 
    'password' => $config['db']['password'], 
    'charset' => 'utf8', 
]; 

...

// My password file 
[db] 
dsn="mysql:host=localhost;dbname=xxx" 
username="xxx" 
password="xxx" 

db.phpをGitから離れることができますが、これは特に多くの設定がセキュリティに影響を与えない他の設定ファイルの場合に便利です。

2

追加ファイルを作成した理由はわかりません。 common\configフォルダには、main-local.phpが表示されます。そこに接続資格情報を定義することができます。

デフォルトでは、このファイルはgitによって無視されます。

+0

あなたは正しいですが、私もcommon/config/main-local.phpを上書きする環境設定(Yii2 advテンプレート)を使いたいと思っています。あなたが/ dev/common/config/main-local.php環境をGitから離れるべきだと主張することもできます。しかし、私はGitに残しておきたい設定をいくつか見逃しています。 Yii2には、パスワード設定やその他の設定の組み込みが組み込まれていません。 最終的に私はそれも個人的な好みにまで沸騰すると信じています。いずれにせよ、何かに固執する必要があります。私にとっては、パスワードを使って別のファイルを作成する方が良い方法のようでした。 – karpy47

+0

Yii2は 'main-local.php'、' main.php'、 'params-local.php'、' params.php'のファイル区切りを持っています。ローカルファイルはgitから隔離されていなければならず、他のファイルは他のファイルでgit mentationに保持する必要があります。 –