我处于构建Java EE应用程序的需求阶段,该应用程序很可能在GlassFish/JBoss后端(目前无关紧要)上运行。我知道我不应该在需求时间考虑架构,但我们不禁要开始想象如何组件将全部对齐在一起:-)Java客户端.class文件保护
这里有一些艰难的,非灵活的要求客户端:
(1)客户端应用程序将为Swing框
(2)客户端可以自由下载,但将使用订阅模式(,因此需要具有服务器端认证/授权的登录机制等等)
(3)是的,Java是最好的平台解决手头问题f或本文范围之外的原因
(4)客户端.class文件需要防范反编译
最后(第4个)需求是本文的基础。
我并不真的担心有人真正反编译并获取我的源代码:最后,它只是由一些轻量级业务逻辑驱动的Swing控件。
我很担心有人反编译我的代码,修改它来利用/攻击服务器,重新编译并启动它。
我曾经设想过各种讨厌的解决方案,但不知道这是否是Java EE开发人员常见解决方案的常见问题。有什么想法吗?
对“代码混淆”技术不感兴趣!
感谢您的任何意见!
我真的不明白......如果认证和授权发生在服务器端比恶意客户端可以做什么? – Rekin 2011-01-06 18:45:32
不要忘记,在一个网络环境中,“坏人”可以将嗅探器放在他的尽头,并找出发送的内容。 – Suirtimed 2011-01-06 18:55:10
@Suirtmed:与任何Web浏览器客户端应用程序一样。解决方案很简单 - 使用加密通信(SSL)。基本上,我找不到任何理由来证明代码加密。 – Rekin 2011-01-06 18:58:45