【发布时间】:2012-10-11 13:47:58
【问题描述】:
我知道问题How do I secure my database connection credentials? 已被多次询问和回答(例如How to secure database passwords in PHP?)。
对该问题的普遍接受的答案是将详细信息存储在 Web 根目录之外。但我很好奇为什么这真的有很大的不同。
据我了解,一个人无法通过 HTTP 下载 PHP 文件的源代码(除非您的网络服务器配置不正确,但您会立即知道这一点)。因此,除非您无论如何都可以访问 PHP 文件的源,否则您将无法看到凭据。如果我错了,请纠正我,但这基本上不意味着您需要 shell 访问权限吗?如果你有 shell 访问权限,你就不能访问 web 根目录之外的文件吗?
如果该问题的答案是包含文件可能具有不允许除 Web 服务器用户之外的任何人读取它的特殊权限,那么(考虑到我具有 shell 访问权限),我不能只写 (或修改)任何 PHP 文件以回显这些凭据?
所以问题是,真的将凭据直接存储在 PHP 脚本中还是存储在 Web 根目录之外的文件中会有什么不同吗?
【问题讨论】:
标签: php database security webserver credentials