Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 将包含数据库密码的文件放在var/www中是否安全?_Apache - Fatal编程技术网

Apache 将包含数据库密码的文件放在var/www中是否安全?

Apache 将包含数据库密码的文件放在var/www中是否安全?,apache,Apache,我不想将包含数据库密码的文件保存在apache的webroot中,因此我将其移动到var/www(服务器根目录)并从那里包含它 这是在创建以前没有的新安全问题,还是我可以将其留在那里?它创建的安全问题是,任何有权访问服务器的人都可以获得您的DB凭据。此外,根据文件和文件夹的不同,文件可能会被下载(具体取决于web应用程序上的文件和安全设置)。行业标准的解决方案是加密该文件中的凭据。因此,可以加密凭据。您将加密密钥安全地存储在哪里?在我们公司,我们使用一些密码保险库,只有少数人可以访问保险库。此外

我不想将包含数据库密码的文件保存在apache的webroot中,因此我将其移动到var/www(服务器根目录)并从那里包含它


这是在创建以前没有的新安全问题,还是我可以将其留在那里?

它创建的安全问题是,任何有权访问服务器的人都可以获得您的DB凭据。此外,根据文件和文件夹的不同,文件可能会被下载(具体取决于web应用程序上的文件和安全设置)。行业标准的解决方案是加密该文件中的凭据。

因此,可以加密凭据。您将加密密钥安全地存储在哪里?在我们公司,我们使用一些密码保险库,只有少数人可以访问保险库。此外,我们的网站位于.Net中,该网站具有用于加密配置文件中凭据的内置解决方案。凭据必须在服务器上加密,我认为机器密钥是用于加密的密钥的一部分。数据库如何访问密码?@zaph:你是说DBA?我总是读到“不要将数据库凭据存储在文件中,这是不安全的”,但从未听过实际的替代方案,最后,每个人都这么做了。但是你不想发布整个互联网的文件来下载它。不确定
etc/www
是如何成为您机器中的服务器根目录的(您的意思是
/var/www
?),但这可能是最糟糕的地方。您需要将敏感信息存储在文档根目录之外。@阿尔瓦罗冈萨雷斯哦,您是对的,当然是
var/www
,我刚刚更正了它。在我的apache版本中,webroot是
var/www/html
,我认为只有在较旧的版本中,
var/www
才是公共webroot。对,如果
/var/www/html
是公共树,
/var/www
应该可以。但是现在我想起来,
/etc/www
看起来是一个放置设置的明智的地方:)@阿尔瓦罗冈萨雷斯:是的,这看起来真的是一个安全的地方。但无论如何,只要我不需要管理员访问数据库,我就会停用对数据库的公共访问,所以这里所有的安全问题都围绕着我需要直接连接到数据库的时间。