2010-07-20 57 views
0

目前我们正在将mysql密码存储在application.ini中。使用SetEnv存储mysql配置文件中的mysql密码

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

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

这是否合理安全?

回答

2

只要确保apache配置文件不能被除apache以外的任何其他用户读取。

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

+1

你会更好地使它只能由root读取,否则子进程可以读取文件! – Cez 2010-07-20 22:03:04

+0

好点,Cez。 – 2010-07-21 07:59:11

3

考虑流氓脚本以下时的配置文件是可读被Apache:

<?php 

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

安全的文件只有root访问:

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

现在你可以使用SETENV而不允许apache的子进程读取文件。在引导过程中,设置数据库连接,然后删除服务器变量,以便像var_dump($_SERVER)这样的东西不显示值。

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