Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使我的Java/Java EE应用程序的IP更安全?_Java_Spring_Jakarta Ee_Spring Mvc_Obfuscation - Fatal编程技术网

如何使我的Java/Java EE应用程序的IP更安全?

如何使我的Java/Java EE应用程序的IP更安全?,java,spring,jakarta-ee,spring-mvc,obfuscation,Java,Spring,Jakarta Ee,Spring Mvc,Obfuscation,我们使用Java/javaee/Spring批处理构建了一个应用程序(比如核心应用程序)。此应用程序包含所有业务逻辑,并打包到jar文件中 现在,我们有了另一个使用SpringMVC构建的web应用程序,Hibernate。这个web应用程序为用户提供了一个UI来配置我们的核心应用程序。此web应用程序使用核心应用程序的jar通过引用配置来执行业务任务。现在,我们希望将这些应用程序作为产品分发给各个公司。但我们都知道,JAR/WAR是可以反编译的 因此,我们可以做些什么来保存我们的IP 目前我们

我们使用Java/javaee/Spring批处理构建了一个应用程序(比如核心应用程序)。此应用程序包含所有业务逻辑,并打包到jar文件中

现在,我们有了另一个使用SpringMVC构建的web应用程序,Hibernate。这个web应用程序为用户提供了一个UI来配置我们的核心应用程序。此web应用程序使用核心应用程序的jar通过引用配置来执行业务任务。现在,我们希望将这些应用程序作为产品分发给各个公司。但我们都知道,JAR/WAR是可以反编译的

因此,我们可以做些什么来保存我们的IP

目前我们正在尝试DashO(来自Preempitve的java模糊器)。即使在混淆之后,也可以使用反编译器读取代码。尽管代码读起来要复杂得多,但可以读取业务逻辑

保护我们的知识产权的最佳做法是什么?使我们的应用程序更安全的各种方法有哪些


编辑:请注意,我们必须向我们的客户分发WAR,这是引起担忧的主要原因。

下面是一些保护代码的方法

  • 复杂模糊器的使用 通过以下步骤:
  • [复杂模糊处理工具][1]

    还有一些类似的工具,它们的作用远不止java代码混乱

  • 使用SSL保护您的网络。使整个网络路径加密

  • 使用证书管理可以增强安全性,并防止未经授权的用户非法访问您的源代码

  • 如果您对上述内容有任何澄清,请告诉我


    谢谢。

    您是想保护服务器端逻辑还是客户端逻辑,还是两者都要保护

    如果是第一个,那么您已经完成了,因为您无法对无权访问的文件进行反编译


    如果是第二次,你就太不走运了。将敏感逻辑从客户端移动到服务器,使客户端成为一个简单的中间人,在一个漂亮的UI中提供用户输入并格式化服务器输出。这样,如果有人看到你无聊的web服务客户端,你就不会在意了。

    你能从web下载部分应用程序吗? 所以war启动,从服务器下载更多的模块,然后使用它们。此外,还将确保下载模块未存储在磁盘上的任何位置

    或者,如果您构建了一个API,并将重要的IP移到API中,又如何呢


    或者将部分代码移动到本机代码中如何?

    对象化不是安全性。正如我的安全伙伴所说,这是“通过默默无闻实现的安全”

    我的简短回答是,您应该从一开始就考虑安全性来设计应用程序。答案很长,那就是你需要确保你的通讯安全。例如,您可能需要某种唯一的公钥/私钥才能访问您的web服务,并使您的所有web服务都使用HTTPS,这样黑客就不会轻易地窥探您的数据包并找出协议。我们可以称之为“许可证密钥”。但是,正如所有了解安全性的人都会告诉你的那样,实际上没有任何完整的prof方法,只有那些使它更难的方法

    我有一个朋友曾经写过Java小应用程序游戏,但很难做到这一点。当他看到自己的代码时,认为这会阻止黑客发送虚假分数,他发现他们刚刚开始反编译代码并直接调用JAR。最终,他重新编写了他的整个分数跟踪系统,使其更加“智能”,这样它就知道你不能一次只获得10000000分。取而代之的是,客户端必须定期发送分数更新,服务器也加入了防止分数增长过快的规则


    无论如何,那是我的0.02美元。

    事实上,我们还建立了一个web服务。但问题是我们的应用程序正在处理的数据是巨大的,也是非常敏感的数据。由于数据量巨大,每次API调用所花费的时间将导致巨大的延迟。