我的 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)
不,它不安全。从系统管理员的角度来看:您的凭据以及所有数据都将以未加密的方式传输。
尽管 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 语句是不可取的,从安全角度来看,存储过程要好得多。
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |