在托管服务提供商上远程连接 MySQL 数据库安全吗?

在托管服务提供商上远程连接 MySQL 数据库安全吗?

我的 JavaFX 桌面应用程序目前已远程连接到 bluehost 上托管的 MySQL 数据库。我在 JavaFX 应用程序上查询“SELECT”、“UPDATE”、“DELETE”,并成功完成。

我的问题是。这种方法安全吗?

我正在使用 JDBC 驱动程序通过它进行连接。

DriverManager.getConnection("jdbc:mysql://mysql_ip_on_bluehost_here:3306/my_db", dbUser, dbPass);

答案1

不,这并不安全。从系统管理员的角度来看:您的凭据以及所有数据都将以未加密的形式传输。

尽管 MySQL 支持传输层安全性 (SSL/TLS),但默认情况下不启用,并且在设置服务器支持你需要明确指示客户使用它也是如此。

通常,这会导致类似这样的结果:

DriverManager.getConnection("jdbc:mysql://mysql_ip_on_bluehost_here:3306/my_db?useSSL=true", dbUser, dbPass)

另一种替代方案是像 IPSec 这样的技术,它在 IP 层而不是应用层提供安全性。

从 DBA 的角度来看,@M_dk 提出了一个很好的观点,即允许直接 SQL UPDATE 和 DELETE 语句是不可取的,从安全角度来看,存储过程要好得多。

答案2

如果您没有在任何地方指定 useSSL,则就其本身而言,不需要。目前,登录详细信息将以明文形式发送,所有其他交易也是如此。请参阅使用 SSL 进行安全连接来自 MySQL 网站。

相关内容