我能信任Java SecurityManager沙盒吗?

3
我正在编写一个JavaFX2应用程序,可以接受从远程位置加载的任意代码。为此,我使用了自定义SecurityManager、ClassLoader和ProtectionDomain。不幸的是,这似乎也是用来沙盒小程序的设置,而这已经导致了许多安全漏洞,进而使人们对Java Web插件产生了恐惧,甚至将其从操作系统中删除。
Java沙箱是否是运行不受信任代码的安全环境,还是整个Java Web插件都不安全?
1个回答

4
安全管理器为您的应用程序提供的保护程度与插件提供的保护程度完全相同,而鉴于安全漏洞,“保护程度不高”。它目前可以插入已知的安全漏洞(AFAIU)。但是在任何复杂的插件中,可能还有更多尚未发现的漏洞,或者可能在新版本或新API中引入新漏洞。
因此,基本上,您的代码应该超出标准安全管理器的范畴,列出整个包的黑名单,并(如果需要)提供实用方法来执行通常由该包处理的活动。
但是,这些建议只是20多条列表中的第一点,我可能能够列举出2或3个应用程序需要保护自己免受运行不受信任代码的可能性,尽管这不是问题所在。
Java沙箱是运行不受信任代码的安全环境吗?
不是。Java安全可能为防范不受信任代码提供一个良好的起点,但需要根据应用程序进行扩展,并具备其他元素以适应所需任务。即使如此,仍然需要考虑“未知的安全漏洞”(无论是在JRE还是在您自己的安全性方面)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接