我正在远程服务器上运行 Java 程序和 MySQL 数据库。现在我想要的是建立通信并能够从java程序执行查询(选择、插入、删除、更新)以在数据库中生效。我确实知道有一个库(JDBC MySQL 连接器)允许我将 Java 程序与数据库连接。我还知道可以使用 MySQL JDBC 接口(interface)直接从 Java 程序执行查询。然而,我的问题是,与远程服务器上存储的数据库的这种“类型”通信是否足够安全。我还读到可以选择使用 PHP/Pearl 来做到这一点。所以我的问题是:
通过互联网在 Java 程序和远程服务器上运行的 MySQL 数据库之间建立连接的最佳选项/解决方案是什么?
最佳答案
My question is, however, if this "kind" of communication with the database stored on the remote server is safe enough.
模数“足够安全”的真正含义是什么,答案可能是"is"......如果您采取合理的预防措施。例如:
使用
PreparedStatement
和查询参数来避免 SQL 注入(inject)问题1如果可能,请为 java <-> 数据库流量使用适当安全的专用网络(例如 VPN)
如果您无法保护网络安全,请使用 SSL;例如http://dev.mysql.com/doc/refman/5.0/es/connector-j-reference-using-ssl.html
保护您的数据库帐户和身份验证凭据。
1 - 这涉及一种不同的“攻击”模式......但它实际上是常见的。
<小时/>您还需要平衡远程数据库访问的需求与安全和风险管理。例如,如果安全漏洞的潜在后果非常严重,那么也许您甚至不应该考虑通过互联网进行数据库访问。
<小时/>What is the best option/solution in establishing a connection between Java program and the MySQL database running on the remote server over the internet?
我认为我们无法回答这个问题。
关于java - Java程序与MySQL数据库建立通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21989051/