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

Php 使用SetEnv在apache配置文件中存储mysql密码,php,apache,zend-framework,Php,Apache,Zend Framework,目前我们正在application.ini中存储mysql密码 由于此文件位于我们的源代码控制存储库集市中,因此它不是放置生产服务器密码的好地方 我正在考虑将其存储在apache配置的环境变量中 这是否合理安全?只需确保apache配置文件不可被apache以外的任何其他用户读取即可 但保持密码安全并不是主要的预防措施,因为您还可以禁止从外部连接到MySQL服务器,或者仅将其限制在某些IP。只需确保apache配置文件不可被apache以外的任何其他用户读取即可 但保持密码安全并不是主要的预防措

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

由于此文件位于我们的源代码控制存储库集市中,因此它不是放置生产服务器密码的好地方

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


这是否合理安全?

只需确保apache配置文件不可被apache以外的任何其他用户读取即可


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

只需确保apache配置文件不可被apache以外的任何其他用户读取即可


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

当Apache可以读取配置文件时,请在恶意脚本中考虑以下事项:

<?php

echo file_get_contents('/path/to/config');
现在您可以使用SetEnv,而不允许apache的子进程读取该文件。在引导过程中,设置DB连接,然后删除服务器变量,这样var_dump$\u server之类的东西就不会显示这些值


按IP地址限制以进一步阻止攻击,只要攻击者不通过IP地址访问并知道配置文件的内容,您就可以了。

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

<?php

echo file_get_contents('/path/to/config');
现在您可以使用SetEnv,而不允许apache的子进程读取该文件。在引导过程中,设置DB连接,然后删除服务器变量,这样var_dump$\u server之类的东西就不会显示这些值


通过IP地址进行限制以进一步阻止攻击,只要攻击者不通过IP地址访问并知道配置文件的内容,您就可以了。

您最好让它只能由root用户读取,否则子进程可以读取该文件!!您最好让它只能由root用户读取,否则子进程可以读取文件!!