如何禁用NodeJs内部模块?

时间:2013-01-05 18:22:04

标签: security node.js module

我正在评估将NodeJ用于共享编程平台的过程。

用户应该能够提交代码并在服务器上运行它。为了给他们最好的基础,应该提供几个NodeJs模块。

出于安全原因,应该对流程进行chroot以禁止访问系统资源。

最好的方法似乎是使用child_processes,尤其是fork()函数。

为了进一步的安全性,还应禁用某些NodeJs模块,例如启动其他子进程。

如何为孩子禁用这些模块?我甚至无法找到默认情况下禁用某些选项的编译选项,

1 个答案:

答案 0 :(得分:3)

基本上,您正在寻找的是在受信任的环境中运行不受信任的代码。这里的关键是沙盒,我想。

请注意,Node.js中有许多用于创建和管理沙箱的解决方案,其中包括:

  • gf3/sandbox,这是 node.js的漂亮javascript沙箱
  • hflw/node-sandbox,这是一个高级沙盒库,允许沙盒和父进程之间的通信。

我对他们中的任何一个都没有任何实际经验,但我想这是你迈向正确方向的一步。也许您想在这里与他们分享您的经历?我认为这很棒: - )

希望这有帮助。