我认为如果我授予 apache 用户适当的权限并使用ident
身份验证方法,那将使连接更加安全,因为这样就不需要将密码存储在连接字符串中(如果出现 PHP 错误或Apache 错误配置和 PHP 代码被意外发送到客户端)。
此外,这种方式连接的安全性将取决于主机系统的安全性。我通过 ssh 禁用了 root 登录,只允许公钥身份验证,所以我认为它非常安全。
这是否有任何重大的安全优势,还是只是一厢情愿?有必要吗?
我认为如果我授予 apache 用户适当的权限并使用ident
身份验证方法,那将使连接更加安全,因为这样就不需要将密码存储在连接字符串中(如果出现 PHP 错误或Apache 错误配置和 PHP 代码被意外发送到客户端)。
此外,这种方式连接的安全性将取决于主机系统的安全性。我通过 ssh 禁用了 root 登录,只允许公钥身份验证,所以我认为它非常安全。
这是否有任何重大的安全优势,还是只是一厢情愿?有必要吗?
如果您的数据库仅在 localhost 上侦听(如果可能的话,应该如此),那么您对其进行身份验证的方式并没有太大的不同。如果攻击者闯入,他们很可能会通过公共服务闯入……在您的情况下是 Apache/PHP。在这种情况下,他们将可以通过您使用的任何身份验证方法访问数据库,因为他们可以访问您的 Apache/PHP 设置可以访问的任何内容。
更重要的是确保您的应用程序不允许任意 SQL 通过或允许 SQL 注入、远程代码包含等,这样攻击者就无法获得对主机的本地访问权限。
无论如何我都更喜欢使用md5
- 因为如果他们无法从除 127.0.0.1 以外的任何地方连接时,密码被盗就没有任何价值,这意味着他们必须努力从脚本中提取密码(或升级 privs ) 以便在他们设法利用 Web 服务器或在其上运行的脚本时进入数据库。仅仅拥有 Apache 身份是不够的。
更重要的是,它允许您按应用程序划分访问权限,因此您在醉酒的周末编写的 MyTicketTracker 作为 SQL 注入工具无法访问与 TheCriticalAccountingApplication 相同的数据库。它不会阻止一个坚定的攻击者,但它可能会减慢一个随意的攻击者的速度。