2011-10-18 43 views
25

我想知道什麼是最佳實踐或建議爲MySQL憑證/主機創建變量時要執行的操作。MySQL憑證/主機變量最佳實踐

define('HOST', 'localhost'); 
    // etc.. 
    mysql_connect(HOST, // etc... 

VS

$host = 'localhost'; 
    // etc.. 
    mysql_connect($host, // etc... 

對於這兩種,你可以很容易地檢查哪些聲明變量或常量,也許能找到什麼是容易的價值。我有多個用戶可以共享和使用的代碼。

保護這些變量的最佳方法是什麼?

回答

31

這裏有幾個解決方案

1)你給每一個用戶一個用戶和密碼,每個用戶都有自己的權限,可以在數據庫(僅選擇,或插入等..)。所以在你的代碼中,你只需要包含一個db.config.php,這樣所有的變量都可以被設置。因爲用戶使用自己的變量,所以用戶回顯變量並不重要。 。

2),則可以得到一個共同的用戶名/密碼的數據庫,然後編碼所述文件(使用custom encoding,Zend的優化或Ioncube公司和取消設置變量這裏的一個示例代碼:

// file mysql_connect.php 

$link = mysql_connect("localhost", "mysql_user", "mysql_password") 
    or die("cannot connect to database : " . mysql_error()); 

// then this file is encoded so nobody can view it. 

3)在某個時候,某人以某種方式能夠找到這些信息。我只是建議信任你的用戶(假設他們是開發人員)

+0

第二個看起來很昂貴,我需要做的,第三個,還沒有;)但我喜歡第一個,非常簡單和整潔。 –

+0

沒問題,歡迎光臨 –

1

在你的代碼中的某個時刻,你將不得不硬編碼這種信息,重要的是要保持它在一個地方,以促進maintanability。 但是,因爲你是擔心安全問題,我建議你檢查:Convert PHP file to binary