gpt4 book ai didi

java - 今天在 JVM 中最接近真正(资源受限)隔离的是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:12 24 4
gpt4 key购买 nike

假设以下情况:

  • 您有一个支持许多用户的大型复杂系统(分布式、并发、庞大的数据集)。代码被发送到数据。
  • 您希望允许系统中的移动代码(即不受信任的代码与系统的其余部分在同一 JVM 中运行)利用数据的局部性,避免反序列化等。

您可以将代码放在一个有趣的类加载器中,并像 applet runner 一样使用自定义的安全策略。但是仍然存在问题:

应保护整个系统免受恶意代码的侵害 - 例如产生大量线程、耗尽所有 CPU、分配过多内存。

千禧年之初提出的想法是 JSR-121。 Isolates 旨在带来进程隔离的大部分好处 - 限制 cpu 使用、线程生成、堆使用:一般的资源分配。

鉴于这项工作似乎已被 Sun 放弃,我们目前能得到的最接近结果是什么?

到目前为止,我的想法是:

  • 字节码翻译代码以插入分配跟踪。谷歌似乎做了类似的事情:http://code.google.com/p/java-allocation-instrumenter/ .它需要一些工作,因为谷歌 (Joshua) Bloch-ed 自己陷入了困境,并将各种东西打包为私有(private)......
  • 同时禁止调用安全管理器不能调用的东西,例如线程创建。
  • 将(罕见的)中断检查插入到循环和递归函数中,以便监视线程可以监视(使用 ThreadMXBean),如果花费的时间太长,则中断有问题的线程。限制重入可能更简单——在对用户代码的任何调用中,基本 block 在中止之前只能输入 n 次。

有没有更好的或现有的方法来做到这一点?

最佳答案

这是一个复杂的问题。我的第一个想法是创建一种特定领域的语言来满足“移动”用户的需求。 DSL 将无法执行危险操作。

哪些人会上传不受信任的代码?这听起来像是一个可疑的想法。我们付出了很多努力来确保人们无法运行不受信任的代码 ;-)

关于java - 今天在 JVM 中最接近真正(资源受限)隔离的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4004621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com