我有java应用程序,我在思考安全性。我可以混淆代码,但我仍然可以“窃取”#34;来自内存的代码或使用例如javassist在运行时修改代码。我在修改之前寻找SecurityManager来保护我的代码,并通过另一个java应用程序从内存中获取代码。 有人知道如何使用SecurityManager这个例子或者知道更好的解决方案吗?
答案 0 :(得分:4)
SecurityManager与您尝试执行的操作相反。它可以保护用户的计算机免受运行不受信任的代码的潜在有害影响。您正试图保护代码免受用户侵害。
没有真正的解决方案可以100%保护您的代码。如果代码在用户的机器上执行,则可能被盗,并且(通过技巧和努力)进行逆向工程。对于所有编程语言都是。
基本上,如果用户控制平台,他们可以访问正在运行的应用程序内存中的内容,而您无法阻止它。对于Java,他们还可以禁用任何安全管理器,附加代理,以及...基本上覆盖您可能想要强制执行的任何安全控制。它是>><<<<<<平台。
你可以做的最好的事情就是让那些没有必要的逆向工程技能和时间的人太难了。
如果代码是贵重 ...只在>>上运行它<< >>你的<<<<<<<数据中心等。