Security 如何在客户部署时保护Java EE web应用程序代码';s服务器?

Security 如何在客户部署时保护Java EE web应用程序代码';s服务器?,security,jakarta-ee,deployment,obfuscation,proguard,Security,Jakarta Ee,Deployment,Obfuscation,Proguard,该公司已经创建了一个云解决方案,但一些客户要求应用程序托管在他们的基础设施上,这可能会导致一些严重的安全威胁,如反编译代码。 web应用程序使用动态框架,如spring、JPA、struts和DWR,这使得混淆非常困难(我尝试使用Proguard) 混淆是唯一的解决办法吗?值得吗?任何意见都会有帮助。最简单(也是相当标准)的做法是将其作为许可协议的一部分,这样他们就不会对您的软件进行反向工程或以其他方式弄乱。这假设您信任您的业务合作伙伴遵守合同(可以说,这是与他们开展业务的先决条件) 混淆是唯一

该公司已经创建了一个云解决方案,但一些客户要求应用程序托管在他们的基础设施上,这可能会导致一些严重的安全威胁,如反编译代码。 web应用程序使用动态框架,如spring、JPA、struts和DWR,这使得混淆非常困难(我尝试使用Proguard)

混淆是唯一的解决办法吗?值得吗?任何意见都会有帮助。

最简单(也是相当标准)的做法是将其作为许可协议的一部分,这样他们就不会对您的软件进行反向工程或以其他方式弄乱。这假设您信任您的业务合作伙伴遵守合同(可以说,这是与他们开展业务的先决条件)

混淆是唯一的解决办法吗?值得吗

如果您不能信任客户,您可以拒绝将代码部署到客户


是否有必要这样对待你的客户,由你自己决定。我认为他们有更好的事情要做,而不是试图敲诈你。但是,如果您非常担心,纯ASP模式(代码永远不会离开您的服务器)似乎是您唯一的解决方案。

作为一种替代方案,您可以按照

安全威胁中的建议,以封闭虚拟设备的形式部署服务。您是指威胁要窃取您代码的客户吗?因为对于“外部”威胁(如远程漏洞),它不应该对托管在云中或内部环境造成影响(事实上,如果他们能够及时修复安全问题,内部环境可能会更安全,因为他们可以将其限制在内部网中使用)。可能有帮助:是的,我的意思是客户偷了代码。我是一名开发人员,所以我只关注技术解决方案,因为有些客户很固执,不相信他们的数据在云中,他们更喜欢将数据放在自己的服务器中,因此您建议的ASP模型不会响应这些客户的特定要求,作为一家刚刚起步的公司,我们不能承受损失。另一方面,我发现混淆很难实现,因为我们高度依赖动态框架(spring、jpa、struts、dwr…)@FrozenFlame您可以起诉任何违反EULA的客户。我需要了解更多信息,plz为我提供有用的链接谢谢:)基本思想是使用VMWare或VirtualBox将应用部署到独立的虚拟机中。此虚拟机可以安装在客户的计算机上,客户将从您的黑匣子服务中获益,而无需您授予他操作系统访问权限。理想情况下,您可以请求客户允许您通过ssh访问VM以进行软件维护。否则,您只需为每次软件更新向他发送一个新的VM。