Java 对Spring应用程序的混淆值得一试吗?

Java 对Spring应用程序的混淆值得一试吗?,java,spring,proguard,obfuscation,Java,Spring,Proguard,Obfuscation,我想使用模糊器(例如ProGuard)来保护web应用程序中的IP。我知道模糊字节码的局限性,尽管如此,人们还是可以对其进行反编译。但我感觉好多了,如果我知道Web服务器上有一个模糊的war文件。。。 在ProGuard的第一次测试之后,我想知道他们的“入口点”方法是否对使用SpringMVC的web应用有用。。。还有春天。如果我必须“保留”我所有的@Repository、@Service、@Controller和@Component注释类,并因此将它们从混淆中排除,那么这种工具的主要问题就没有

我想使用模糊器(例如ProGuard)来保护web应用程序中的IP。我知道模糊字节码的局限性,尽管如此,人们还是可以对其进行反编译。但我感觉好多了,如果我知道Web服务器上有一个模糊的war文件。。。 在ProGuard的第一次测试之后,我想知道他们的“入口点”方法是否对使用SpringMVC的web应用有用。。。还有春天。如果我必须“保留”我所有的@Repository、@Service、@Controller和@Component注释类,并因此将它们从混淆中排除,那么这种工具的主要问题就没有得到解决。我读到,我应该使用基于Java的Spring配置,Spring3.1在这方面有很多改进,但值得使用吗?任何工具真的能混淆SpringBean吗


Dominik

混淆服务器端代码没有意义


如果攻击者访问您的服务器文件系统,
.war
文件将是您的最小问题

我同意Bozho的说法,条件是它只安装在您控制的服务器上,但是,在有些情况下,您可以向客户发送一些东西,比如简单的DRM,然后您会想要模糊化以获得一点额外的保护

我从未使用过Spring,但是您面对的问题听起来像是一个常见的混淆问题,您无法保护入口点,因为在某个时候,一些不知道混淆的东西需要调用它

如果可能的话,我建议重构,使您的入口点类成为哑shell,从而调用包含实现的模糊类


另外,在模糊化的Jar上使用反编译器总是很有用的,你会很快看到你的模糊化工作有多成功&哪些重要的代码没有模糊化,然后你可以调整配置并改进模糊化。

我希望这个问题还没有得到回答

我有同样的问题@Dominik表达了什么

如果我们保持@Repository、@Service、@Controller、@Component、@Entities、@Transactional和@Cachable完好无损,那么混淆就毫无意义了。如果我错了,请纠正我。
有人尝试过任何不同的方法来混淆Spring MVC代码吗?

如果这是一个未部署在客户端机器上的web应用程序,那么它肯定不值得。如果是,可能是,但我通常持怀疑态度。