我如何通过 Java 安全地连接到数据库?

问题描述 投票:0回答:2

我希望使用 Java 连接到 Mysql 数据库而不向任何可能反编译我的代码的人透露密码?我可以有效地连接到数据库,但我的方式会在代码中公开显示我的密码:(并且只希望得到有关如何隐藏密码的响应。提前谢谢

java database security encryption
2个回答
1
投票

OAuth 允许客户端连接,而无需在客户端上存储凭据(广泛用于移动设备或识别推文应用程序)。它还允许删除恶意客户端的访问权限。但我怀疑mysql是否直接支持这个。所以你必须用某种服务层来包装你的数据库。 OAuth 的可用实现之一:

http://code.google.com/p/oauth-signpost/

(IIRC,Qipe使用)


0
投票

假设要访问的数据库位于您的计算机上,需要考虑两件事:

  • 设置一个小型安全 REST 服务(如此处所示),该服务将根据具有特定凭据的特定请求,将密码传递到您的数据库。然而,如果您的应用程序位于某些公司防火墙后面,这可能会成为一个问题,因为您可能需要添加防火墙例外,而并非所有管理员都热衷于这样做。

  • 您可以混合使用加密技术混淆来加密数据库的密码,然后混淆所有代码。

但需要注意的是,这些方法中的任何一种都可能随着时间的推移而被打破。这基本上是所有安全相关软件的规则。

如果由我决定,我会使用第一种方法来解决这个问题,并确保访问服务的凭据经常更改。

但是,用作客户端解决方案一部分的数据库包含非常敏感的数据,这些数据符合客户的利益,不能篡改,因此客户很可能不会乱搞它,只要系统工作正常。

另一方面,如果数据库没有部署到您的一台计算机上,那么您实际上无能为力。您可以建议将服务器存储在只能通过 Intranet 访问的远程计算机上,但除此之外,我认为您对此无能为力。

© www.soinside.com 2019 - 2024. All rights reserved.