目前我们正在将mysql密码存储在application.ini中。使用SetEnv存储mysql配置文件中的mysql密码
由于此文件位于我们的源代码控制库(bazaar)中,因此它不适用于生产服务器的密码。
我在考虑将它存储在apache配置的环境变量中。
这是否合理安全?
目前我们正在将mysql密码存储在application.ini中。使用SetEnv存储mysql配置文件中的mysql密码
由于此文件位于我们的源代码控制库(bazaar)中,因此它不适用于生产服务器的密码。
我在考虑将它存储在apache配置的环境变量中。
这是否合理安全?
只要确保apache配置文件不能被除apache以外的任何其他用户读取。
但保持密码安全并不是主要的预防措施,因为您也可以禁止从外部连接到您的MySQL服务器,或者仅限于某些IP。
考虑流氓脚本以下时的配置文件是可读被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地址访问并知道配置文件的内容,那么您应该可以。
你会更好地使它只能由root读取,否则子进程可以读取文件! – Cez 2010-07-20 22:03:04
好点,Cez。 – 2010-07-21 07:59:11