我刚刚完成了我的第一个PHP站点,现在我遇到了一个与安全相关的问题。我使用PEAR:DB进行数据库连接,并为它创建了一个单独的参数文件。我该如何隐藏这个参数文件?
我找到了一个指南(http://www.kitebird.com/articles/peardb.html),上面写着:
指定连接的另一种方法 参数是把它们放在一个 您引用的单独文件 你的主要脚本。 ... 它也使你 将参数文件移到之外 Web服务器的文档树,其中 防止其内容 字面上显示如果服务器 变得错误配置并开始 以纯文本形式提供PHP脚本。
我现在把我的文件放在像/include/db_parameters.inc
这样的目录中但是,如果我转到此URL,Web服务器会显示该文件的内容,包括我的数据库用户名和密码。
根据我的理解,我应该保护这个文件,即使PHP作为文本提供,也没有人能读到这个。
Web服务器的文档树之外的含义是什么?将PHP文件从public_html目录中完全放入服务器文件系统?一些CHMOD?
答案 0 :(得分:1)
/include/db_parameters.inc
是一个URI,对应于真实路径,如/var/www/include/db_parameters.inc
/ include之前的部分是文档根。 PHP将当前文档根存储在$_SERVER['DOCUMENT_ROOT']
在这种情况下,要在文档根目录之外,将是除上述目录之外的目录中的文件。
答案 1 :(得分:0)
您可以尝试/include/db_parameters.inc.php在该目录中还包含一个空白的index.php / html文件,以防止任何人看到目录中包含的内容。
答案 2 :(得分:0)
文档树外部表示文件不应位于文档根目录或文档根目录的任何子文件夹中。您可以在.htaccess文件中设置一个规则,禁止访问db_parameters.inc并将其保留在文档树中,但这可能是最好留在另一天的练习。