【问题标题】:protecting applet code against hackers保护小程序代码免受黑客攻击
【发布时间】:2013-10-24 15:39:03
【问题描述】:

我有一个 Java 应用程序,我正在考虑将它作为小程序通过 Web 发布。我担心精通 java 的最终用户能够以某种方式查看源代码,因为我的 Web 服务器会在他们尝试使用小程序时将代码发送到他们的远程 jvm。

可以采取哪些预防措施来确保最终用户永远无法直接查看小程序的源代码?

我希望作为小程序发布可以在某种程度上保护代码的隐私,而不是发布带有用户可以解压缩的可下载 jar 的应用程序。这是真的?

【问题讨论】:

标签: java applet


【解决方案1】:

由于 Jar 本质上只是一个伪装的 zip 文件,因此没有办法阻止人们查看源代码。有许多可用于 Java 类的反编译器。大多数担心最终用户反编译源代码的开发人员使用混淆器来使代码或多或少不可读或至少难以理解。

很抱歉,这个问题并没有很好的答案,Java 语言的特性就是你总是可以反编译源代码。

有一些选项,例如将 Java 应用程序包装在可执行文件中,这会使访问 Jar 本身变得更加困难,但显然您不能对 applet 执行此操作。

这是一篇(公司)关于将 Java 转换为可执行文件的博客文章: http://www.excelsior-usa.com/articles/java-to-exe.html

从一个关于该主题的 SO 线程中提取: How can I convert a JAR file to an EXE file?

【讨论】:

  • +1 谢谢。您能否添加一两个有用的链接来了解如何通过将 jar 包装在可执行文件中来使其更难访问?
  • 添加了一些相关链接。
  • 我似乎在另一个 java 问题上走到了死胡同。你有一点时间看看它并帮我解决它吗?我在此链接的另一个问题中发布了它:stackoverflow.com/questions/20307310/…
【解决方案2】:

您可以使用一些available open-source code obfuscators(许多人建议使用 ProGuard,不仅用于混淆,还用于代码最小化)。

【讨论】:

    【解决方案3】:

    如果有人真的想要你的代码,他们会得到的。你能做的最好的事情就是尝试让它变得更加困难。正如其他人所说,一种典型的方法是使用代码混淆器。

    如果您使用 Maven 构建项目,您可以使用 maven central repository 中的 proguard-maven-plugin

    但由于您正在考虑将其作为小程序发布,如果您可以在服务器端代码上运行任何功能,则可以在保护您的代码库方面走得更远。

    【讨论】:

    • 我似乎在另一个 java 问题上走到了死胡同。你有一点时间看看它并帮我解决它吗?我在此链接的另一个问题中发布了它:stackoverflow.com/questions/20307310/…
    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 2019-05-22
    • 1970-01-01
    • 2016-02-06
    • 2011-01-31
    • 2018-04-02
    相关资源
    最近更新 更多