2013-02-19 64 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根目录之外。

相关问题