[英]Storing the mysql password in the apache configuration file using SetEnv
当前,我们将mysql密码存储在application.ini中。
由于此文件位于我们的源代码控制存储库(市场)中,因此不是存放生产服务器密码的好地方。
我正在考虑将其存储在apache配置的环境变量中。
这样合理吗?
当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地址访问并知道配置文件的内容,那么您就可以了。
只要确保apache配置文件是apache以外的任何其他用户都无法读取的。
但是,保持密码安全并不是主要的预防措施,因为您还可以禁止从外部连接到MySQL服务器,或者仅将其限制为某些IP。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.