目前我們正在將mysql密碼存儲在application.ini中。使用SetEnv存儲mysql配置文件中的mysql密碼
由於此文件位於我們的源代碼控制庫(bazaar)中,因此它不適用於生產服務器的密碼。
我在考慮將它存儲在apache配置的環境變量中。
這是否合理安全?
目前我們正在將mysql密碼存儲在application.ini中。使用SetEnv存儲mysql配置文件中的mysql密碼
由於此文件位於我們的源代碼控制庫(bazaar)中,因此它不適用於生產服務器的密碼。
我在考慮將它存儲在apache配置的環境變量中。
這是否合理安全?
只要確保apache配置文件不能被除apache以外的任何其他用戶讀取。
但保持密碼安全並不是主要的預防措施,因爲您也可以禁止從外部連接到您的MySQL服務器,或者僅限於某些IP。
考慮流氓腳本以下時的配置文件是可讀被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地址訪問並知道配置文件的內容,那麼您應該可以。
你會更好地使它只能由root讀取,否則子進程可以讀取文件! – Cez 2010-07-20 22:03:04
好點,Cez。 – 2010-07-21 07:59:11