在主机提供商上远程连接MySQL数据库安全吗?

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

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

我正在使用JDBC驱动程序来连接它。

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

不,这不安全。 从系统pipe理员的angular度来看:您的凭证以及所有数据都将以未encryption方式传输。

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

通常情况下,这将导致以下几点:

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

另一种方法就是像IPSec那样在IP层提供安全性,而不是应用层。

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

如果你没有在任何地方指定useSSL,那么在它自己的,没有。 现在,login详细信息将以明文forms发送,所有其他交易也一样。 请参阅从MySQL网站安全地使用SSL连接 。