2012-07-08 50 views
2

我被告知尽可能在public_html之外保留尽可能多的PHP文件是一种很好的做法。当阻止目录遍历时,webroot和文档根目录之间的差异

有人建议我使用定义的神奇常量来引用public_html之外的文件,这很好,我可以通过这样做去从public_html中取出一个目录。现在

我的问题是这样的:

  1. 什么是根目录和文档根目录之间的区别是什么?

  2. 为了防止像目录遍历这样的东西,可以在public_html之外引用一个文件夹中的一个目录吗?还是我需要更进一步,多个目录以确保这些文件不能被访问?

我也想不只是为了避免/防止目录遍历,但是隐藏这样的包含所有这使得例如连接时间我的MySQL用户名和登录详细信息我的连接文件的重要文件。

回答

4

Webroot和文档根只是两个不同的术语,在Web开发的情况下,意味着同样的事情。

只能通过网络访问webroot内的文件(在您的案例中为public_html)。除此之外的任何内容只能由服务器本身访问。因此,您可以在public_html旁为您不想通过网络访问的所有网络相关文件创建一个文件夹。

但是请记住,用户永远不会看到PHP源代码,因为它在将文件发送给用户之前已经被执行。这意味着,即使用户试图访问“连接到数据库”文件,他们所得到的只是一个空白页面,并且没有您的登录凭证的痕迹。

+0

希望详细输出结构适当,以及相应的错误/通知设置。 – RobB 2012-07-08 02:10:30

+0

很酷,谢谢你。但我关心连接文件的例子是,我读过有些方法可以销毁php头文件,然后将内容作为文本转储,我认为它们是如何访问它的,但是,我可以看到我的“其他”与public_html并排访问的文件夹,非常好 – Kalcoder 2012-07-08 02:20:59