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

Yve*_*aga 3 mysql java

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

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

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

DriverManager.getConnection("jdbc:mysql://mysql_ip_on_bluehost_here:3306/my_db", dbUser, dbPass);
Run Code Online (Sandbox Code Playgroud)

HBr*_*ijn 5

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

尽管 MySQL 确实支持传输层安全性 (SSL/TLS),但默认情况下并未启用它,并且在设置服务器支持后,您还需要明确指示客户端使用它。

通常,这会导致以下内容:

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

另一种选择是像 IPSec 这样的东西,它在 IP 层而不是应用层上提供安全性。

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