我知道这个问题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