2013-02-19 68 views
9

我已經在PHP文件創建用於建立與數據庫服務器的連接。在這個文件中,我使用了mysql_connect()函數,其中包含我的數據庫服務器的參數host,username和password。如何在項目中保護數據庫配置文件?

public class DatabaseConnect 
{ 
function __construct() 
{ 
    mysql_connect('localhost','username','password') or die('Could not connect to mysql server.'); 
    mysql_select_db('databasename'); 
} 

} 

現在在這種情況下,其他人可以看到用戶名和密碼。

我發現固定值,即mysql.default_usermysql.default_password另一種方式。在這種情況下,我們必須這樣嗎?

或者我怎麼能保證從別人我的價值觀?

回答

9

你可以嘗試把你的數據庫憑據在單獨的文件與適當的UNIX權限設置,例如644,然後包括你的腳本的頂部該文件。

configuration.php文件看起來像:

<?php 
define (DB_USER, "mysql_user"); 
define (DB_PASSWORD, "mysql_password"); 
define (DB_DATABASE, "database_name"); 
define (DB_HOST, "localhost"); 
?> 

您的原始腳本將是這個樣子:

require ("configuration.php"); 
public class DatabaseConnect 
{ 
function __construct() 
{ 
    mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die('Could not connect to MySQL server.'); 
    mysql_select_db(DB_DATABASE); 
} 

} 
+0

只是用來拷貝和您的配置文件規範粘貼(怪我;-)) 。必須在變量名稱周圍添加引號才能使其工作。 – LSA 2017-02-17 22:29:57

+0

'get_defined_constants()'可以很容易地將它們暴露給邪惡的開發者。 – 2017-04-06 08:22:28

5

現在,在這種情況下,用戶名和密碼給別人看到。

只有那些,那有你的源代碼的訪問權限。這應該不成問題。但是,如果您想分離代碼和數據庫憑據,請確保配置文件位於Web根目錄之外。

相關問題