目前我们将mysql密码存储在application.ini中。
由于此文件位于我们的源代码控制存储库(bazaar)中,因此它不适合生产服务器的密码。
我正考虑将其存储在apache配置的环境变量中。
这是否相当安全?
答案 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。