我主要使用 MySQL 作为数据库来开发 PHP 应用程序。通常,运行应用程序的服务器与 MySQL 服务器位于同一台机器上,但并非总是如此。
我正在阅读有关 SSL 支持的 PHP 文档http://php.net/manual/en/ref.pdo-mysql.php我还剩下这些问题:
- 当应用程序和数据库服务器处于同一个(localhost)环境中时,是否需要使用 SSL 连接到 MySQL?
- 当您在两个服务器(应用程序服务器和数据库服务器)之间访问信息时,这样做有什么好处吗?
- 使用 PDO-SSL 连接的“最佳实践”是什么?
- 是否可以安全地假设使用客户端/服务器连接的 SSL 证书与 PDO 的 SSL 连接无关?
答案1
1)大多数情况下并非如此 - 您可以(应该)将 MySQL 配置为仅在本地,因此除非有人对该框具有管理员访问权限或能够以 MySQL 用户身份运行,否则 SSL 不会产生任何影响。
2)当然,它可以防止中间人(例如,有人欺骗您的网络服务器,以便他们可以查询数据库)和嗅探数据。
3)与大多数 SSL 相同 - 使用强加密(无 SHA1)、保护您的密钥、定期更改密钥等。
4)在某种程度上,它们不需要是相同的密钥或其他东西,但是如果您的组织有一个CA,那么您可以简化事情,但让他们批准(“签署”)您的证书,这可以从管理的角度使事情变得更简单。
答案2
当应用程序和数据库服务器处于同一个(localhost)环境中时,是否需要使用 SSL 连接到 MySQL?
不。无论如何,最好使用 MySQL 套接字,因为它不支持 SSL/TLS。
当您在两个服务器(应用程序服务器和数据库服务器)之间访问信息时,这样做有什么好处吗?
是的。SSL/TLS 提供传输安全性,确保凭证和交易均不以明文形式传输。传统观念认为,在受信任的网络中,被恶意第三方窃听的风险极小,与开销相比,保护此类流量的好处微不足道。不过,这种情况正在改变,开销并不大,安全总比后悔好……