我有一個Java應用程序,我正在考慮通過web作爲applet發佈。我擔心Java精明的最終用戶能夠以某種方式查看源代碼,因爲我的Web服務器在嘗試使用小程序時會將代碼發送到遠程jvm。保護小程序代碼免受黑客的侵害
可以採取哪些預防措施來確保最終用戶永遠無法直接查看applet的源代碼?
我希望發佈作爲一個小程序可能以某種方式保護代碼的隱私,而不是釋放具有用戶可以解壓縮的可下載jar的應用程序。這是真的?
我有一個Java應用程序,我正在考慮通過web作爲applet發佈。我擔心Java精明的最終用戶能夠以某種方式查看源代碼,因爲我的Web服務器在嘗試使用小程序時會將代碼發送到遠程jvm。保護小程序代碼免受黑客的侵害
可以採取哪些預防措施來確保最終用戶永遠無法直接查看applet的源代碼?
我希望發佈作爲一個小程序可能以某種方式保護代碼的隱私,而不是釋放具有用戶可以解壓縮的可下載jar的應用程序。這是真的?
作爲一個Jar本質上只是一個僞裝的zip文件,並沒有真正的方法讓人們看到源代碼。有很多可用於Java類的反編譯器。大多數關注最終用戶反編譯源代碼的開發人員使用混淆器來使代碼變得難以理解,或者至少難以理解。
對不起,這個問題沒有真正的好答案,它只是Java語言的本質,您可以隨時反編譯源代碼。
有一些選項將Java應用程序封裝在可執行文件中,這會使得訪問Jar本身變得更加困難,但顯然你不能爲applet執行此操作。
下面是關於Java轉換爲可執行的話題(公司)的博客文章:從拉 http://www.excelsior-usa.com/articles/java-to-exe.html
您可以使用一些available open-source code obfuscators(許多人推薦使用ProGuard,不僅用於混淆而且代碼最小化)。
如果有人真的想你的代碼,他們會得到它。你可以做的最好的事情是儘量讓它變得更加困難。正如其他人所說,典型的方法是使用代碼混淆器。
如果您使用Maven構建項目,則可以使用maven central repository中的proguard-maven-plugin。
但是,由於您正在考慮將其作爲applet發佈,因此如果您可以在服務器端代碼上運行任何功能,則可以進一步確保代碼庫的安全。
我似乎已經達成了另一個java問題的死衚衕。你有一點時間看它並幫我解決它嗎?我在這個鏈接中發佈了另一個問題:http://stackoverflow.com/questions/20307310/beancreationexception-after-adding-two-variables – CodeMed
可能重複[是否值得混淆java web應用程序?](http://stackoverflow.com/questions/1419474/is-it-worth-to-obfuscate-java-web-application) –
@JoshLee問題是關於_server_端代碼;這是關於_client_-side小程序。 – iamnotmaynard