【问题标题】:Sandboxed plugins for Node.jsNode.js 的沙盒插件
【发布时间】:2013-04-25 11:15:58
【问题描述】:

我是一个完整的 Node 菜鸟,所以如果这个问题有一个明显的答案,我很抱歉。

我希望创建一个网络应用程序,该应用程序将运行来自不受信任来源(即社区提交)的插件。所以我需要将这些插件锁定到一个只允许某些访问(不能写入磁盘等)的沙箱中。理想情况下,插件只能使用某些经过批准的节点包和 API。

这在 Node 中可行吗?如果是这样,您能否向我指出可以帮助我入门的软件包或文档?

【问题讨论】:

  • github上有一个叫“node-sandbox”的模块。它基本上在另一个进程中运行不受信任的代码。这是非常准系统的 IMO,但它可以完成这项工作。当我从 github 下载一个新模块时,我通常会非常快速地阅读代码以发现奇怪的违规行为,但从未找到一个。我知道这不是最好的,因为代码在更新之间会发生变化,但我想我们必须在某个时候信任人们。
  • 好吧,我不能让它相信我的情况,因为我将“自动”接受代码作为插件。所以我需要保护核心应用程序免受恶意/编写不佳的插件的影响。我将看看节点沙箱。
  • 这能回答你的问题吗? How to run untrusted code serverside?

标签: node.js plugins


【解决方案1】:

以下是可以帮助您的一小部分项目:

我建议第一个 (sandbox),因为它更成熟。

【讨论】:

    【解决方案2】:

    我还将通过我的库为该列表做出贡献:https://github.com/asvd/jailed。除了不受信任代码的沙盒(在受限子进程中)之外,它还提供了导出沙盒内任何一组函数的机会,从而为沙盒代码定义了一个自定义 API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      • 2018-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      相关资源
      最近更新 更多