我尝试查找此信息但未能成功。
PHP 和 MySQL 服务器之间的连接如何工作?由于密码是明文存储的,如果密码存储在不同的服务器上,是否也会明文发送到 MySQL?“中间人”有没有办法拦截密码?
提前致谢,
Sébastien
答案1
据我所知,您说得对,PHP 和 MySQL 之间的连接未加密,并且存在安全风险,特别是当 Web 服务器和 MySQL 服务器是不同的服务器时。
过去,我设置了一个中央 MySQL 服务器和多个使用 PHP 和其他语言与 MySQL 数据库通信的 Web 服务器。我使用始终处于活动状态的服务器之间的 SSH 隧道来保护它。在 Web 服务器上,我使用所有相同的命令与 MySQL 通信(PHP 和 mysql 命令行客户端),只是指定了端口 3307,而不是默认的 3306。端口 3307 通过 SSH 隧道转发到 MySQL 服务器的端口 3306。
该设置还包括一个备份 MySQL 服务器,它使用 SSH 隧道在两个 MySQL 服务器(不同的机器)之间进行 MySQL 复制。
虽然我没有对此设置进行任何广泛的测试,但它似乎运行良好,性能没有明显的下降。在极少数情况下,SSH 隧道会断开,我必须手动重新连接,但这种情况非常罕见。
我的文档用于设置 SSH 隧道的说明位于 GitHub 上。