2010-07-20 37 views
0

目前我們正在將mysql密碼存儲在application.ini中。使用SetEnv存儲mysql配置文件中的mysql密碼

由於此文件位於我們的源代碼控制庫(bazaar)中,因此它不適用於生產服務器的密碼。

我在考慮將它存儲在apache配置的環境變量中。

這是否合理安全?

回答

2

只要確保apache配置文件不能被除apache以外的任何其他用戶讀取。

但保持密碼安全並不是主要的預防措施,因爲您也可以禁止從外部連接到您的MySQL服務器,或者僅限於某些IP。

+1

你會更好地使它只能由root讀取,否則子進程可以讀取文件! – Cez 2010-07-20 22:03:04

+0

好點,Cez。 – 2010-07-21 07:59:11

3

考慮流氓腳本以下時的配置文件是可讀被Apache:

<?php 

echo file_get_contents('/path/to/config'); 

安全的文件只有root訪問:

chmod 600 /path/to/config && chown root:root /path/to/config 

現在你可以使用SETENV而不允許apache的子進程讀取文件。在引導過程中,設置數據庫連接,然後刪除服務器變量,以便像var_dump($_SERVER)這樣的東西不顯示值。

限制IP地址可以進一步阻止攻擊,只要攻擊者無法通過IP地址訪問並知道配置文件的內容,那麼您應該可以。