【问题标题】:how much secure is Java Swing window applicationJava Swing 窗口应用程序有多安全
【发布时间】:2016-01-25 19:45:13
【问题描述】:

我使用 Swing 制作了一个 Java 应用程序。我一共使用了12个类,10个表格和一个主类。所有的东西都装在一个罐子里,里面有所有必要的库和资源。该 jar 是一个可执行文件,并且运行良好,没有任何问题。

问题是它是一个与数据库相关的分布式应用程序。 我使用了很多Connection 对象来连接mysql。 连接是公开的。如果黑客或攻击者将我的 jar 导入到他自己的项目中 并尝试获取该连接的克隆,他将能够破解数据库吗? 如果是,解决办法是什么,如果不是,他为什么不能?

【问题讨论】:

  • 您是否在连接文件中包含用户名和密码?您通常可以轻松地反编译文件以查看源代码。
  • 是的,用户名和密码是在源代码中给出的
  • 那么提供用户名和密码的有效方法是什么
  • 更简单的攻击是简单地拦截您的代码和数据库之间的连接。完全不需要逆向工程。

标签: java mysql swing security


【解决方案1】:

这取决于 jar 中的确切内容以及您连接到数据库的方式。

只包含类文件的 jar 文件可以很容易地进行逆向工程。这会让黑客看到你编写的大量代码,尤其是 URL 和 SQL 字符串之类的内容。您可以尝试变得非常聪明并建立字符串,但您可能必须比黑客聪明两倍才能对他隐瞒。

因此,与其试图让 jar 防黑客攻击,不如保护您的数据库。公共连接不应该有太多的权限,并且为了最安全,管理员帐户不应该可以远程访问。为了保护您的数据库,您可能需要做更多的事情,但我不是 DBA。

祝你好运。

【讨论】:

  • 您还应该使用工具来混淆代码。这些通常也会对字符串进行编码,让黑客的生活变得更加困难。
  • @mr-rho 我想到了代码混淆,这是一个好主意,但是有些人可能认为代码一旦被混淆就足够了。我更喜欢编写代码,期望一切都可见。所以,不要放任何你不想看到的东西。如果你再混淆,那就更好了:)
  • 我使用了一个类进行连接,该类有一个将数据库名称作为字符串并将连接返回给调用者的方法。黑客可以创建该类的对象并在外部调用公共方法类并获取连接并通过that执行任何查询。如何进行设计以防止它。
  • 如果我将方法设为私有,我无法从 java swing 中调用该方法。非常不希望在需要时一次又一次地编写数据库连接代码。如何保护具有向调用者返回连接的方法的类,以便攻击者无法创建该类的对象
  • 将混淆防止攻击者创建该连接类的对象
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 2016-10-11
  • 2015-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多