2010-08-25 91 views
4

我問,因爲它似乎是一個正確的應用程序index.php文件中調用的唯一東西是require_once引導文件。我假設這增加了一層安全性,但如果沒有,這種模式似乎毫無意義。爲什麼不使用index.php文件作爲引導程序?任何意見,警告,想法等都表示讚賞!PHP:使用index.php作爲bootstrap安全嗎?

(順便說一句,我的htaccess文件是路由所有請求index.php文件...)

回答

6

無論您是否在索引文件中有引導進程或單獨的引導進程,都沒有固有的安全差異。

擁有一個單獨的文件通常是由於組織方面的考慮(例如,有一個文件可以從別處引入來導入應用程序的功能,或者將所有任務放在正確命名的文件中,或者使其更容易添加自定義擴展到引導過程)。

但是,配置包含敏感信息的文件(有時甚至更少,甚至除索引文件外的所有PHP文件)都將放置在Web根目錄之外。那作出安全差異,因爲在意外的服務器錯誤配置的情況下,PHP文件不能從外部訪問。

+0

感謝Pekka的迴應。如果索引需要外部引導程序,並且服務器出現意外錯誤配置,那麼安全問題是否仍然適用? – shanebo 2010-08-27 16:48:03

+0

@shanebo不,如果在解析PHP文件的方式上存在錯誤配置,引導程序將不會被首先提取(並且不能從web根目錄訪問)。 – 2010-08-27 21:42:29

1

我不知道,這暴露了任何漏洞。如果apache配置錯誤,將空白index.html或index.php放入文件夾可以防止攻擊者獲取目錄列表。

4

在一個安全的環境中,只有index.php位於文檔根目錄下,所有其他PHP文件應該位於文檔根目錄之外,所以當index.php文件僅包含文檔根目錄外的Bootstrap文件時纔有意義。