2017-06-17 53 views
1

我第一次使用框架Yii2,我想知道在config \ db.php中以純文本方式寫入我的數據庫的密碼是否安全?或者他們是更安全的方式來訪問數據庫?yii2 config db.php安全嗎?

回答

3

它應該足夠安全,只要你不暴露這個文件給公共用戶。基本上(只要它不暴露給公共用戶),你可以將它存儲在服務器的任何地方,但是應用程序應該能夠快速簡單地獲得它(不爲數據庫連接提供額外的延遲)。

+0

我接受了這個答案,因爲在任何情況下都是如此,但@S Rana和@ karpy47的答案也是正確的。 – MHogge

3

如果您使用的是Git,我認爲提交任何帶有密碼的文件是一個壞主意。我個人跟上一次至關重要的密碼單獨文件的Git外部的,並且加載該文件,以獲取值,像這樣......

$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', 
]; 

凡passwords.ini會是什麼樣子......

// 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

你是對的,但我也喜歡使用環境設置(Yii2 adv模板),覆蓋common/config/main-local.php。猜猜你可能會爭辯說我應該把環境/ dev/common/config/main-local.php也放到Git之外。但是,我錯過了一些我希望保留在Git中的其他設置。 Yii2並沒有內置的密碼設置和其他設置。最後,我相信它也歸結爲個人喜好。它可以工作,你只需要堅持一些。對我而言,擁有一個帶有密碼的單獨文件似乎是一種更好的做法。 – karpy47

+0

Yii2有'main-local.php','main.php','params-local.php'和'params.php'文件分隔。本地文件遠離git,其他需要在其他文件中保存git mentaion的東西。 –