我可以信任 Java SecurityManager 沙箱吗?
Posted
技术标签:
【中文标题】我可以信任 Java SecurityManager 沙箱吗?【英文标题】:Can I trust Java SecurityManager sandbox? 【发布时间】:2013-09-28 12:50:13 【问题描述】:我正在编写一个 JavaFX2 应用程序,它接受从远程位置加载的任意代码。对我来说,使用自定义 SecurityManager、ClassLoader 和 ProtectionDomain 是要走的路。不幸的是,这似乎与用于沙盒小程序的设置相同,这导致了许多安全漏洞,这反过来又使人们害怕 Java Web 插件并将其从他们的操作系统中完全删除。
Java 沙箱是运行不受信任代码的安全环境,还是只是整个 Java Web 插件不安全?
【问题讨论】:
【参考方案1】:安全管理器提供您的应用。与提供插件一样多的保护。考虑到安全漏洞,“不多”。
它目前已修复已知的安全漏洞 (AFAIU)。但与任何复杂的插件一样,可能还有更多,有待发现,或者可能在新版本或新 API 中引入。
因此,基本上,您的代码应该在某种程度上超越标准安全管理器,将整个包列入黑名单并(如果需要)提供实用方法,通过这些方法执行通常由该包处理的活动。
但是,这个建议是 20+ 点列表中的第一点,我可能能够说出 2 或 3 个可能的应用程序。在运行不受信任的代码时可能需要提防。虽然这不是问题..
Java 沙箱是在其上运行不受信任代码的安全环境吗..
没有。 Java 安全性可能为针对不受信任代码的安全性提供了一个很好的起点,但它需要针对应用程序进行扩展,并具有其他元素以适合所需的任务。即便如此,仍有“未知的安全漏洞”(在 JRE 以及您自己的安全工作中)需要考虑。
【讨论】:
以上是关于我可以信任 Java SecurityManager 沙箱吗?的主要内容,如果未能解决你的问题,请参考以下文章