Mariadb unix_socket (没有密码) 或 mysql_native_password 哪个更安全?

问题描述

我已经通知自己,显然应该有来自 zb 的连接。通过 unix_soket 创建一个 PHP 脚本(不需要密码,连接只能通过本地主机工作),因为没有建立 TCP 连接,因此没有窃听是可能的。

使用 Unix_socket 是安全的还是只对 root 连接有用(它总是没有密码还是我可以向 unix_socket 添加密码?)

解决方法

有关于 the unix_socket MariaDB knowledge base 的权衡说明。

所有通过 unix socket 的连接,无论是否使用 unix_socket 身份验证,都具有防窃听功能。

带有密码的 PHP 脚本的安全性较低,因为当密码被公开时,其他用户可以使用它。与运行 php 脚本具有相同访问权限的人需要在脚本中找到密码。也许这提供了一些安全性。

unix_socket 对任何 unix 用户、root 或其他用户都同样有效。

MariaDB-10.4 可以为单个用户提供多种身份验证机制。这些位于 OR 上下文中,因此添加密码会削弱帐户的安全性。