2011-08-31 66 views
1

好吧,首先 - 我沉迷于使用根相对链接结构的一切。包含在php中对我来说总是很困难,但是我遇到了一段代码,它允许我包含root相对的代码。set_include_path有什么缺点或安全风险?

这真的很简单:

set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT']); 

从PHP手册

评论是我有一个非常简单的PHP的网站,但有许多不同的子目录,这使得它易于使用。此外,该公司可能很快就会切换服务器,我认为这可能会缓解许多网站的转换。

那么这里是否存在安全风险?我不会动态地包含文件或远程包含它们。我在包括这个在每个php文件的顶部的性能影响?或者它可以忽略不计?

回答

1

只要您控制include_path中的内容,就没有安全风险。

但是,如果您的include_path中有太多路径(因为PHP在查找文件之前必须尝试每条路径)会导致性能下降。

+0

如果您必须向包含路径添加大量路径,请将最常见的路径放在前面,因为它会按顺序搜索路径。 –

+0

感谢您的答案! – Ben

0

鉴于您的代码,docroot位于include_path的末尾,因此只有在include_path(即缺少文件)的其余部分找不到包含文件时才会看到性能问题。