存储mysql数据库连接安全吗?

时间:2014-01-03 19:36:30

标签: java

我真的找不到答案。也许是因为答案很明显。无论如何,将密码存储在可运行的jar中是否安全?

就像,我正在课堂上建立数据库连接。人们能够阅读此代码吗?我不希望他们知道MySQL密码。

3 个答案:

答案 0 :(得分:7)

不,这不安全。一般的经验法则是,您放入客户端的任何内容都是您无法控制的。一旦它在他们的计算机上,他们可以做任何他们想要的东西,包括反汇编,在其上运行strings,重写部分(例如在游戏中作弊),用他们的信息构建一个完全独立的应用程序已经从你的网站上清除了它与你的服务如何相互作用等。

如果您正在编写客户端/服务器应用程序,则客户端应连接到服务,并且该服务应连接到数据库。如果您担心人们访问数据库,您可能还需要为您的服务实现登录。

答案 1 :(得分:1)

不,永远不要硬密码,尝试使用加密和/或环境变量。

我喜欢jasypt(http://www.jasypt.org/encrypting-configuration.html),看看它,我希望这可以帮助你。

答案 2 :(得分:1)

反编译JAR文件非常简单。在我看来,根据我的经验,您应该永远将您的MySQL数据库信息保留在JAR文件中。相反,您应始终与服务器上的某个后端侦听器(,例如,PHP脚本)建立连接,以便在用于访问数据库之前清理所有输入。然后,您的后端侦听器可以将数据库查询的结果返回给您的应用程序。

在客户端进行SQL数据库查询的唯一时间是当客户端访问本地存储的数据库时,该数据库仅包含与其相关的数据/运行时。但根据我的经验,这些情况很少,所以一般来说,你永远不应该做客户端数据库连接。始终将这些连接委派给服务器端API。