2011-08-31 64 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(即缺少文件)的其餘部分找不到包含文件時纔會看到性能問題。