使用SetEnv在mysache配置文件中存储mysql密码

时间:2010-07-20 06:52:11

标签: php apache zend-framework

目前我们将mysql密码存储在application.ini中。

由于此文件位于我们的源代码控制存储库(bazaar)中,因此它不适合生产服务器的密码。

我正考虑将其存储在apache配置的环境变量中。

这是否相当安全?

2 个答案:

答案 0 :(得分:3)

当Apache可以读取配置文件时,请在流氓脚本中考虑以下内容:

<?php

echo file_get_contents('/path/to/config');

将文件保护为root-only访问权限:

chmod 600 /path/to/config && chown root:root /path/to/config

现在您可以使用SetEnv而不允许apache的子进程读取该文件。在引导期间,设置数据库连接,然后删除服务器变量,以便var_dump($_SERVER)之类的内容不显示值。

通过IP地址限制进一步阻止攻击,只要攻击者无法通过IP地址访问并知道配置文件的内容,那么您应该没问题。

答案 1 :(得分:2)

确保除apache之外的任何其他用户都无法读取apache配置文件。

但是保持密码安全并不是主要的预防措施,因为您也可以禁止从外部连接到MySQL服务器,或者仅限于某些IP。