我處於構建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