我知道這個問題How do I secure my database connection credentials?
已被要求,並回答了多次(例如How to secure database passwords in PHP?)。保護數據庫連接信息
該問題的一個普遍接受的答案是存儲網頁根目錄以外的詳細信息。但我很好奇,爲什麼這真的有很大的不同。
從我的理解,一個人無法通過HTTP下載PHP文件的源(除非你的web服務器配置不正確,但你知道這件事的時候了)。因此,除非您有權訪問PHP文件的源,否則您將無法查看憑證。糾正我,如果我錯了,但這不是基本上意味着你需要shell訪問?如果你有shell訪問權限,你能不能直接訪問web根目錄以外的文件?
如果這個問題的答案是,包括文件可能有特殊權限,不允許任何人,但與Web服務器用戶閱讀它,然後(考慮到我有shell訪問),我不能只寫(或修改)任何PHP文件只是迴應這些憑據?
所以問題是,它是否真的是否有任何區別,直接存儲在PHP腳本中的證書,而不是在Web根外的文件?
是的,這實際上發生在Facebook一次! http://techcrunch.com/2007/08/11/facebook-source-code-leaked/ – fire
或者防止這個bug:http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012- 1823/ – Tchoupi
@Dev問題是:*爲什麼我們應該在webroot之外存儲數據庫證書?*。這回答了這個問題。 – Tchoupi