如何加密/混淆使用 apache tomcat 部署的网络服务?

问题描述

我的问题:

目前我的应用程序加载在多个服务器上,以便最终客户端无需离开局域网即可访问它。我所做的安装只不过是在 tomcat7 / tomcat9 上通过 war 进行部署。任何了解最低限度的人都可以访问安装文件夹并复制所有 .class 文件,这些文件没有最低限度的安全性(使用非常简单的反编译器可以看到源代码)。

我完全理解作为服务器应用程序,如果您无法访问机器,您就无法拥有文件,不幸的是,很多人都有。 我的目标是拥有相同的应用程序,但任何可以访问的人都无法反编译/读取文件

我已经做过的测试:

  1. 我找到的第一种方法是使用名为 protector4j 的应用程序,该应用程序可以完成所有操作。创建 .class 文件不可解密的安全环境。在纸面上一切都很好,但它对我不起作用,该应用程序创建了一个 Tomcat 文件夹,您在其中部署了 .war 并启动它,您必须使用特定的 bat。它设法加密文件,但在启动时它没有向我显示定义的方法并且调用不起作用。

  2. 此时我决定尝试复制相同的逻辑,保持相同的流程:首先,通过创建一个能够读取我的应用程序的 .class 的 ClassLoader。为此,我尝试遵循以下指南 Tomcat9-ClassLoaderTomcat9-ContextTomcat9-Loader,尽管这三个指南都令人困惑:

  • 我知道可以定义一个系统范围的类加载器,它可以同时加载库和类

  • 可以在“%TOMCAT%/conf/context.xml”文件中定义一个加载器,用于管理所创建的 web 应用程序的类。

    不幸的是,最后两点都没有奏效。

  1. 我还尝试简单地混淆(使用 proguard).class 文件,但它在开始时没有读取它们。

我希望我已经足够清楚了。对于您在评论中写的任何内容,我都会尝试澄清各个方面。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)