在不修改JRE源代码的情况下,有没有办法让Java VM只执行本地代码?

时间:2013-10-23 22:10:59

标签: java security

我的理解是,许多Java VM安全问题涉及VM沙盒机制中的漏洞,这些漏洞允许远程源应用程序突破并向客户端计算机执行顽皮的操作(不要与某人从其下载的程序混淆) web并在本地运行 - 在这种情况下,由用户自行决定安装和执行的内容。据我所知,Oracle提供的库存JRE都是硬连线的,允许用户从网上运行代码。有没有办法改变这种行为?我检查了Java安全设置,'max'设置仍允许执行Web源代码。

我问,因为我正在开发一个桌面应用程序,我希望利用当前可用的大量Apache语言处理软件包。但是,考虑到Java的所有安全问题,很多人都将它们全部放在一起,这将损害我们将应用程序部署到具有阻止Java安装在其计算机上的安全策略的组织的能力。

那么是否存在预先存在的解决方案,或者我将不得不破解更安全的Java VM?

1 个答案:

答案 0 :(得分:2)

通过Web浏览器启动“从Web运行”的任何Java代码。如果您在Web浏览器中禁用Java,则您已经有效地禁用了“从Web运行”。

Java通过Java控制面板立即为disabling "Java content in the browser" for all browsers提供指令,并在各个浏览器中禁用它。提示:这适用于Windows和Mac。

您可能会发现有用的一点是,目前推荐的在Mac上分发Java桌面应用程序的方法是在应用程序包中包含完整的JRE,尤其是在Mac上默认禁用Java Web浏览器集成。这样,您甚至不依赖于操作系统上安装的JRE。

如果只有Windows有应用程序包,但您可以在Windows上执行类似的操作。据我所知,Java在JRE文件夹中是自包含的。如果您不期望浏览器集成,它不依赖于其他程序或注册表项。您应该能够将JRE复制到其硬盘驱动器并从那里启动。

这样的本地捆绑JRE不会与操作系统集成,Web浏览器也不会意识到它们,因此它们无法提供“从网络上运行”的能力。

令人遗憾的是,客户无法理解这种区别并且拒绝在系统上安装JRE,这本身是无害的(禁用浏览器集成)。然而,如果他们发现你在他们的系统上“安装Java”,你可能会失去运气。