文档根目录中的敏感信息

时间:2010-02-01 15:38:41

标签: php security

假设您有一个config.php,它包含敏感信息,如数据库用户密码。不建议将该文件存储在文档根目录中,对吗?

为什么会这样,并且在文档根目录的index.php中存储敏感信息是否更安全?

3 个答案:

答案 0 :(得分:5)

对我来说,第一个想到的场景是错误配置,允许用户下载或查看.php文件,而不是解析它们并将它们显示为text / html。假设您执行升级,出现问题,并且Apache不再解析您的脚本。有人注意到Apache正在以纯文本形式发送您的PHP文件,并且能够打开config.php并查看源代码(以及内部的所有敏感数据库配置参数)。

答案 1 :(得分:4)

进一步理解这个想法。理想情况下,您不会存储比访问代码库的简单脚本以及Web根目录中的图像和css等静态文件更多的内容。

eg:

webroot/index.php
webroot/images/img1.jpg
webroot/images/img2.jpg
webroot/css/base.css

lib/myclass1.php
lib/myclass2.php

你的index.php看起来像这样:

<?php
$CODEBASE = '/usr/home/wwwuser/wherever/it/is';

include $CODEBASE."/lib/myclass1.php";

$code = new MyClass1();
$code->doStuff();

?>

答案 2 :(得分:3)

index.php中存储配置数据并不比config.php更安全;如果PHP以某种方式无法解析其内容,它们都同样容易被显示。使用单独的文件配置数据的好处是,您可以限制对它的访问,有效地防止任何人通过HTTP协议读取它并保持数据安全(r),即使PHP没有解析它。