【问题标题】:Java - Connect to MySQL without specifying username and password inside the codeJava - 连接到 MySQL 而不在代码中指定用户名和密码
【发布时间】:2013-11-05 18:22:40
【问题描述】:

我正在寻找一种方法来打开 JDBC 连接,而无需以纯文本形式指定我的数据库登录名和密码,因为应用程序将被分发,并且任何 Java 反编译器都会显示它们,从而允许用户轻松访问数据库。

有什么方法可以加密它们,或者将它们存储在其他地方吗?

【问题讨论】:

    标签: java android mysql database jdbc


    【解决方案1】:

    看起来您想让 Android 应用程序直接与您的数据库对话?不要那样做。这是一个重大的安全漏洞。无论您如何加密您的凭证,您都必须在程序执行期间的某个地方显示您的纯文本,并且任何拥有调试器的人都可以看到这一点。正确的方法是在您的 Web 服务上使用 API 并从客户端调用该 API。所有数据库事务都应发生在受信任的 Intranet 中。

    【讨论】:

    • 与此相关,我建议使用通过加密 (TLS/SSL) 连接发送到网络服务器的 JSON 消息,然后网络服务器处理请求并将响应发送回移动设备(“成功!” 、“约翰·约翰逊”、“42”等)。
    【解决方案2】:

    您为什么要这样做?通常,您的应用程序的业务端将拥有此信息并连接到 MySQL。在那里,用户无权访问任何代码。然后,您创建一个实际上可供公众访问的端点。在那里,您可以担心将用户名和密码传递给业务逻辑,而业务逻辑实际上可以直接访问您的数据库。

    基本上,不要在服务器端以外的任何地方打开 jdbc 连接。这是一种安全措施。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 2016-12-30
      • 2014-06-11
      • 2019-02-07
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多