存储数据库密码?

时间:2014-05-28 16:18:25

标签: php database .htaccess passwords

有很多方法用于存储数据库密码,这里有一些:

  1. 将密码存储在congif.php文件中,然后在需要时包含该文件
  2. 将密码存储为php环境变量
  3. 在apache congif文件中存储密码
  4. 并确保密码是安全的

    1. 将config.php文件保存在root用户之外,或使用.htaccess保护它
    2. 隐藏php环境变量
    3. 你可以解释一下:

      1. 如何将一些文件放在root下,是否可以安全地防止所有目录遍历攻击?
      2. 是.htaccess足以保护包含密码的php文件吗?
      3. 如何隐藏php环境变量?是通过禁用phpinfos()函数来完成的吗?
      4. 将密码存储在仅在vps主机上可用的apache配置文件中?
      5. 并感谢您的帮助

1 个答案:

答案 0 :(得分:0)

绝对将您的配置变量包含在具有正确Unix权限的单独文件中,例如644。

config.php文件可能如下所示:

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

你的主要课程看起来像:

require ("config.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);
    }

}

修改

要阻止使用.htaccess文件访问文件,请使用:

<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak)$">
Order Allow,Deny
Deny from all
</FilesMatch>

添加您需要的扩展程序。

修改2

将此添加到您只想包含的页面中(不直接调用)。

<?php
if(!defined('MyConst')) {
   die('Direct access not permitted');
}
?>

然后在包含它的页面上添加

<?php
define('MyConst', TRUE);
?>