我正在评估将NodeJ用于共享编程平台的过程。
用户应该能够提交代码并在服务器上运行它。为了给他们最好的基础,应该提供几个NodeJs模块。
出于安全原因,应该对流程进行chroot以禁止访问系统资源。
最好的方法似乎是使用child_processes,尤其是fork()函数。
为了进一步的安全性,还应禁用某些NodeJs模块,例如启动其他子进程。
如何为孩子禁用这些模块?我甚至无法找到默认情况下禁用某些选项的编译选项,
答案 0 :(得分:3)
基本上,您正在寻找的是在受信任的环境中运行不受信任的代码。这里的关键是沙盒,我想。
请注意,Node.js中有许多用于创建和管理沙箱的解决方案,其中包括:
我对他们中的任何一个都没有任何实际经验,但我想这是你迈向正确方向的一步。也许您想在这里与他们分享您的经历?我认为这很棒: - )
希望这有帮助。