0

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

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

这是否有任何重大的安全优势,还是只是一厢情愿?有必要吗?

4

1 回答 1

1

如果您的数据库仅在 localhost 上侦听(如果可能的话,应该如此),那么您对其进行身份验证的方式并没有太大的不同。如果攻击者闯入,他们很可能会通过公共服务闯入……在您的情况下是 Apache/PHP。在这种情况下,他们将可以通过您使用的任何身份验证方法访问数据库,因为他们可以访问您的 Apache/PHP 设置可以访问的任何内容。

更重要的是确保您的应用程序不允许任意 SQL 通过或允许 SQL 注入、远程代码包含等,这样攻击者就无法获得对主机的本地访问权限。

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

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

于 2012-10-27T16:59:13.447 回答