提出以下情况:
您可以将代码放在一个有趣的类加载器中,并使用像applet runner那样的自定义安全策略。但仍有问题:
应该保护整个系统免受恶意代码的攻击 - 例如,产生大量线程,吞噬所有cpu,分配太多内存。
千禧年初的想法是JSR-121。隔离是为了带来进程隔离的大部分好处 - 限制cpu使用,线程产生,堆使用:一般资源分配。
鉴于这种努力似乎被Sun放弃了,我们目前最接近的是什么?
到目前为止,我的想法是:
有没有更好或现有的方法来做到这一点?
答案 0 :(得分:2)
这是一个复杂的问题。我的第一个想法是创建一个特定于域的语言来完成“移动”用户所需的语言。 DSL无法执行危险操作。
上传不受信任的代码的人是谁?这听起来像一个可疑的想法开始。我们花了很多精力确保人们无法运行不受信任的代码; - )
答案 1 :(得分:1)
问题是隔离进程的唯一真正方法是拥有专用的机器/硬件。你做的任何其他事情都必须妥协。取决于这些妥协是可接受的,取决于是否与该代码共享JVM。
这不是一个问题,你可以通过一个微不足道的方式解决一般情况,因为你想要防止你没有想到的事情(其他人可能会想到的一天)