PHP脚本连接到Linux上的本地PostgreSQL实例最安全的方法是什么?

时间:2012-10-27 08:34:22

标签: php postgresql

我认为如果我授予apache用户适当的权限并使用ident身份验证方法,那将使连接更安全,因为密码不需要存储在连接字符串中(可能如果出现PHP错误或Apache配置错误并且PHP代码被意外发送到客户端,则会泄漏。

此外,连接的安全性将取决于主机系统的安全性。我通过ssh禁用root登录,只允许公钥认证,所以我认为它非常安全。

这是否有任何重大的安全性好处,还是只是一厢情愿?它有必要吗?

1 个答案:

答案 0 :(得分:1)

如果你的数据库只是在本地主机上监听(并且应该尽可能地监听),那么你如何认可它并没有多大区别。如果攻击者入侵,他们可能会通过公共服务中断...在您的情况下Apache / PHP。在这种情况下,他们将通过您使用的任何auth方法访问数据库,因为他们可以访问您的Apache / PHP设置可以访问的任何内容。

更重要的是确保您的应用不允许任意SQL传递或允许SQL注入,远程代码包含等,因此攻击者无法获得对主机的本地访问权。

我还是更喜欢使用md5 - 因为密码没有价值,如果他们无法连接除127.0.0.1以外的任何东西时被盗,这意味着他们必须努力提取来自脚本(或升级私有)的密码,以便在 设法利用Web服务器或在其上运行的脚本时进入数据库。仅仅拥有Apache的身份是不够的。

更重要的是,它允许您按应用程序划分访问权限,因此您在醉酒周末编写的MyTicketTracker作为使用SQL注入的工具无法访问与TheCriticalAccountingApplication相同的数据库。它不会阻止一个坚定的攻击者,但它可能会减慢一个随意的速度。