2011-10-24 38 views
6

我想知道,如果它固定到保存用戶名,密碼,服務器等...在php.ini文件中,所以當我連接到MySQL服務器,我沒有始終把參數?是否將php用戶名/密碼保存在php.ini文件中?

而且,將這些信息(保存在php.ini中)通過任何種類的方法(如phpinfo()函數或類似的東西)來查看或恢復?

謝謝

回答

6

只要你確定ini文件在DOCUMENT_ROOT之外,並且不是世界可讀的,它的安全性也不低於其他任何方法。

+0

+1表示將文件保存在文檔根目錄之外。這通過其他常見漏洞減少了攻擊面。 – Cheekysoft

3

您不必每次都將這些信息放入參數中。您可以在單獨的文件(dbconnection.php)中定義連接,並將其包含在需要數據庫連接的文件中。

3

它是不安全的,因爲你可以閱讀使用PHP方法INI文件:parse_ini_file

+1

我認爲這是一個無效的參數。如果你想能夠通過PHP讀取用戶/通行證以建立連接,那麼用於存儲用戶/通行證的任何*方法必須由PHP讀取...... –

+0

「他問是否信息可以通過任何方法檢索「但是這總是*真實的。也就是說,通過相同的邏輯,在db類的私有屬性內保存用戶/密碼是不安全的,因爲我可以用print_r($ db)來查看它。 –

+0

「他們永遠不會讓你惹他們的ini文件」 - 這聽起來像你假設他想把用戶/通過全球php.ini。這沒有必要。您可以創建自己的本地ini文件來存儲本地設置,並且與將設置放在PHP源代碼中一樣安全。 –

0

這將是更安全的,如果你已經把它放在一個文件沒有擴展名,然後確保該文件與的.htaccess。另外,.ini文件可以被任何瀏覽器讀取,所以這將是超級不安全的。

1

我不認爲存在安全隱患涉及節省php.ini文件中的任何配置,因爲ini文件的位置是「公共」目錄之外。沒有用戶可以訪問此文件。

您可以使用 「ini_get」 PHP函數獲取INI參數。你可以從這裏找到更多關於這個參數的信息: http://php.net/manual/en/function.ini-get.php

0

如上所述,.ini文件可能不是不是將其存儲在一個PHP文件本身或多或少的安全。但是,需要考慮的一件事是,使用.ini文件時,此設置對於任何和所有PHP代碼和網站都是有效的。使用.ini文件可能會影響您希望使用其他用戶的其他代碼。

總體而言,這可能是最安全的做法是不使用.ini文件來存儲密碼,只是因爲這是現在開放給任何存儲在服務器上的PHP文件。如果您突然需要爲多個站點或應用程序提供不同的登錄名(針對單獨的數據庫),也會使其成爲一件麻煩事。除了僅用於管理目的的root用戶之外,對多個數據庫使用一個登錄名並不是最佳選擇。

相關問題