Docker 中 MySQL 默认密码的安全性

Security of MySQL default password in Docker

目前我在 Docker 中玩 MySQL 并问自己如何处理 (root) 密码。容器将无法从外部访问(没有端口转发到主机),但只能从 Docker 网络(Docker Compose)内访问。

从我目前的角度来看,我只能使用 default/simple 密码,因为 mysql 服务器将无法访问,除非从 Docker 内部和任何有权访问 [=19= 的人] 无论如何都是 root(至少是 root-like)(因此无论如何都可以访问数据库,例如通过直接访问文件)。这是对的还是我遗漏了什么?

我不会依赖它!例如,如果您稍后安装了一个网络服务器,使用它来提供像 e.js 这样的应用程序。 G。 phpMyAdmin,很容易攻击你的数据库。

在大多数情况下,攻击向量不是服务本身,而是使用它的其他应用程序,因此暴露了服务,phpMyAdmin 就是一个很好的例子。另一个例子是 SQL 注入,如果攻击者获得了对您的 MySQL root 帐户的访问权限,他就可以访问您的文件系统。关于这一点,我建议你看看MySQL Security Guidelines。因此,您应该始终使用安全密码,尤其是对于具有 GRANTFILEPROCESS 权限的用户。

如果您安装了 Debian 或其他基于 Debian 的 OS,您可以使用 debian-sys-maint 用户轻松访问 shell 上的数据库,如下所示:

# mysql --defaults-file=/etc/mysql/debian.cnf

这使您无需输入密码即可获得 root 访问权限。

希望对您有所帮助,请妥善保管!