設想以下PHP文件:是否可以查看未回顯的PHP內容?
<?php
$topSecret = "Something important";
?>
如果我把這個運行標準的LAMP設置一臺服務器,怎麼會有人可以找出$topSecret
上?
如果變量未被回顯,是否易受攻擊?這樣的真正應用可能是存儲在服務器的Web根目錄中的數據庫憑證。
設想以下PHP文件:是否可以查看未回顯的PHP內容?
<?php
$topSecret = "Something important";
?>
如果我把這個運行標準的LAMP設置一臺服務器,怎麼會有人可以找出$topSecret
上?
如果變量未被回顯,是否易受攻擊?這樣的真正應用可能是存儲在服務器的Web根目錄中的數據庫憑證。
如果PHP失敗了,那麼該頁面將顯示爲一個plaint文本文件。那已經發生過;它曾經發生過Facebook。爲了防止這種情況發生,您應該將所有敏感變量(密碼等)存儲在不在web根目錄下的php文件中。您可以將其存儲在父文件夾中(如果您有權訪問它)或保存在由Apache(deny all
)保護的子文件夾中。
在正常情況下,將無法查看。
但是配置錯誤或者代碼中的漏洞利用可能使得查看文件的內容成爲可能。
通常情況下,人們會將這些信息放在webroot之外,以減少發生這種情況的可能性。
今天是PHP安全日嗎? :) 15分鐘前提出了一個非常類似的問題http://stackoverflow.com/questions/2287903/safest-place-to-store-php-values-for-msql-connect/2287909#2287909而我即將也以同樣的方式問一個人。啊,SO和它的100000用戶... – 2010-02-18 11:15:44
是的,那個問題促使我問這個問題。認爲最好是創建一個新問題,而不是在評論主題中提問。 – 2010-02-18 11:16:50