使用 PHP-PDO 的 SSL 属性连接 MySQL 有什么好处?

使用 PHP-PDO 的 SSL 属性连接 MySQL 有什么好处?

我主要使用 MySQL 作为数据库来开发 PHP 应用程序。通常,运行应用程序的服务器与 MySQL 服务器位于同一台机器上,但并非总是如此。

我正在阅读有关 SSL 支持的 PHP 文档http://php.net/manual/en/ref.pdo-mysql.php我还剩下这些问题:

  1. 当应用程序和数据库服务器处于同一个(localhost)环境中时,是否需要使用 SSL 连接到 MySQL?
  2. 当您在两个服务器(应用程序服务器和数据库服务器)之间访问信息时,这样做有什么好处吗?
  3. 使用 PDO-SSL 连接的“最佳实践”是什么?
  4. 是否可以安全地假设使用客户端/服务器连接的 SSL 证书与 PDO 的 SSL 连接无关?

答案1

1)大多数情况下并非如此 - 您可以(应该)将 MySQL 配置为仅在本地,因此除非有人对该框具有管理员访问权限或能够以 MySQL 用户身份运行,否则 SSL 不会产生任何影响。

2)当然,它可以防止中间人(例如,有人欺骗您的网络服务器,以便他们可以查询数据库)和嗅探数据。

3)与大多数 SSL 相同 - 使用强加密(无 SHA1)、保护您的密钥、定期更改密钥等。

4)在某种程度上,它们不需要是相同的密钥或其他东西,但是如果您的组织有一个CA,那么您可以简化事情,但让他们批准(“签署”)您的证书,这可以从管理的角度使事情变得更简单。

答案2

当应用程序和数据库服务器处于同一个(localhost)环境中时,是否需要使用 SSL 连接到 MySQL?

不。无论如何,最好使用 MySQL 套接字,因为它不支持 SSL/TLS。

当您在两个服务器(应用程序服务器和数据库服务器)之间访问信息时,这样做有什么好处吗?

是的。SSL/TLS 提供传输安全性,确保凭证和交易均不以明文形式传输。传统观念认为,在受信任的网络中,被恶意第三方窃听的风险极小,与开销相比,保护此类流量的好处微​​不足道。不过,这种情况正在改变,开销并不大,安全总比后悔好……

相关内容