【发布时间】:2013-04-25 11:15:58
【问题描述】:
我是一个完整的 Node 菜鸟,所以如果这个问题有一个明显的答案,我很抱歉。
我希望创建一个网络应用程序,该应用程序将运行来自不受信任来源(即社区提交)的插件。所以我需要将这些插件锁定到一个只允许某些访问(不能写入磁盘等)的沙箱中。理想情况下,插件只能使用某些经过批准的节点包和 API。
这在 Node 中可行吗?如果是这样,您能否向我指出可以帮助我入门的软件包或文档?
【问题讨论】:
-
github上有一个叫“node-sandbox”的模块。它基本上在另一个进程中运行不受信任的代码。这是非常准系统的 IMO,但它可以完成这项工作。当我从 github 下载一个新模块时,我通常会非常快速地阅读代码以发现奇怪的违规行为,但从未找到一个。我知道这不是最好的,因为代码在更新之间会发生变化,但我想我们必须在某个时候信任人们。
-
好吧,我不能让它相信我的情况,因为我将“自动”接受代码作为插件。所以我需要保护核心应用程序免受恶意/编写不佳的插件的影响。我将看看节点沙箱。
-
这能回答你的问题吗? How to run untrusted code serverside?