gpt4 book ai didi

Clojure:轻量级 jail

转载 作者:行者123 更新时间:2023-12-04 05:43:42 24 4
gpt4 key购买 nike

背景:

在 Lua 中,创建一个新的 Lua VM 非常简单且非常便宜(4kb 内存)。因此,创建廉价的lua“ jail ”是微不足道的。然后,如果不受信任的代码行为不端,我就杀死 Lua VM。

我知道 https://github.com/Licenser/clj-sandbox但它似乎只是围绕着 Java ......这会使不受信任的代码线程成为 native Java 线程,然后我将无法杀死它。

问题:

有没有办法创建廉价/轻量级的 Clojure jail ?

最佳答案

我是一个名为 clojail 的小图书馆的(合)作者这是一种对 clj-sandbox 的重新思考。它还利用了 Java 沙箱,但也提供了沙箱化 Clojure 特定事物的功能。 tryclj4clojure利用它。

我不明白你说的其余部分是什么意思。 JVM 沙箱很棒,因为它可以防止 I/O。 Clojail 通过允许超时来防止长时间运行的代码来完成剩下的工作。如果您要说的是“人们可以创建线程而我无法杀死它们”,那么 clojail 会杀死在沙箱内部创建的线程,并且通常会尽力防止杂散线程逃跑。 JVM 沙箱(和 clojail 特定的东西)仍然可以防止危险代码在线程上运行。

总之,看看clojail。它可能是你需要的。它对于大多数用途来说已经足够了,并且是镇上唯一的 jail 游戏(除了没有维护的 clj-sandbox)。它并不总是最好的解决方案,但通常是最简单的。

如果 clojail 不能满足您的需要,下一步是推出您自己的 jail 机制,该机制涉及使用 JVM 沙箱和分离 JVM。这有很大的开销,所以如果可能的话我会避免它。绝对不再是 4KB Luatown。 ;)

关于Clojure:轻量级 jail ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10960101/

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