2010-02-01 24 views
2

假設您有一個config.php,其中包含敏感信息,如數據庫用戶密碼。不建議將該文件存儲在文檔根目錄中,對嗎?文檔根目錄中的敏感信息

爲什麼會這樣,是否將敏感信息存儲在文檔根目錄的index.php中是一種更安全的方法?

回答

5

對我來說,想到的第一個方案是配置錯誤,它允許用戶下載或查看.php文件,而不是解析它們並將它們呈現爲text/html。假設您執行升級,出現問題,並且Apache不再解析您的腳本。有人注意到Apache以純文本形式發送PHP文件,並且能夠打開config.php並查看源代碼(以及所有敏感的數據庫配置參數)。

3

index.php中的配置數據存儲爲config.php不是一種安全的方法;如果PHP以某種方式無法解析其內容,它們同樣容易被顯示。爲配置數據使用單獨文件的好處在於,您可以限制對它的訪問,從而有效地防止任何人通過HTTP協議讀取它,並保證數據安全(r),即使PHP不解析它也是如此。

+0

如果PHP沒有解析,你可以看到簡單的index.php其包括。但是,如何看到敏感內容包含哪些不在文檔根目錄中? – Ken 2010-02-01 18:39:46

+0

原始海報已編輯他的帖子。它最初詢問它是否以某種方式更安全地將配置數據存儲在config.php的index.php中,兩者均位於文檔根目錄之上。不是。 – 2010-02-01 19:19:51

4

爲了讓這個想法更進一步。理想情況下,您不會存儲遠遠超過訪問您的代碼庫的簡單腳本以及web根目錄中的圖像和css等靜態文件。

eg: 

webroot/index.php 
webroot/images/img1.jpg 
webroot/images/img2.jpg 
webroot/css/base.css 

lib/myclass1.php 
lib/myclass2.php 

和你的index.php會是這個樣子:

<?php 
$CODEBASE = '/usr/home/wwwuser/wherever/it/is'; 

include $CODEBASE."/lib/myclass1.php"; 

$code = new MyClass1(); 
$code->doStuff(); 

?>