微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何加密/混淆使用 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 举报,一经查实,本站将立刻删除。