java - 保护 Java 应用程序代码和配置免受用户编写的代码的影响

标签 java linux security code-access-security

我想为我的客户提供对运行 Java 应用程序的专用服务器的有限访问权限。 客户端将编写一些插件并运行Java应用程序(它是一个控制台应用程序)。该应用程序包含我希望防止反编译和配置的代码,这些代码可能可以从插件内访问,因为它们都将在同一个 JVM 中运行。我想确保客户端仅使用我的应用程序的 API 和一些标准 Java 类,但不能对我的应用程序进行时髦的类加载和逆向工程。

有没有办法保护我的代码和配置不被反编译/下载?我知道有很多主题致力于 jar 文件的混淆和加密,普遍的共识是保护是不可能的,但我认为这与我的情况无关,因为我控制执行环境,可以设置权限等。这是一个 Ubuntu 12.04 盒子。

我不确定是否可以为客户端 shell 提供有限的读取/执行权限,并安全地进行设置。有什么指点吗? 谢谢。

最佳答案

如果它运行在同一个 JVM 中,这是不可能锁定的。

反射可以获得类。

Class<?> class_ = Class.forName("foo.bar");

方法,

class_.getMethod("bax");

还有几乎所有其他东西。

它可以创建新对象,并调用它们的方法,而不考虑可见性(公共(public)、私有(private)等)

关于java - 保护 Java 应用程序代码和配置免受用户编写的代码的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969602/

相关文章:

java - 如何在lucene中进行增量备份?

java - 了解和修改大型项目

Linux:真的要卸载包吗?

Linux:使用鼠标加*键盘*修饰符模拟滚动

linux - Serilog 在 Linux 上运行时不创建日志文件

PHP 安全 - 密码和凭据管理?

java - 按空格分隔字符串

java - 如何从 Nexus OSS 连接到 HTTPS 存储库?

security - 我们如何确保浏览器实际检查 CA 的 SSL 证书?

linux - GIT 权限 : Repository inside a repository