2017-09-01 76 views
1

我想源代码node.js沙箱能够运行不受信任的用户提交的代码。Node.js沙盒运行不可信用户提交代码


有一些关于此的帖子,但他们都是旧的。我希望最新的帖子会有所帮助。
(2011)How to run user-submitted scripts securely in a node.js sandbox?
(2012)How to run untrusted code serverside?
(2013)Safely sandbox and execute user submitted JavaScript?


通过其他职位和研究这个,我发现下面的沙箱和漏洞:
(被囚)https://github.com/asvd/jailed
(Jailed Exploit)https://github.com/asvd/jailed/issues/33

(沙盒)https://github.com/gf3/sandbox
(沙盒漏洞利用)https://github.com/gf3/sandbox/issues/50

(沙堡)https://github.com/bcoe/sandcastle
(沙堡开拓)https://github.com/bcoe/sandcastle/issues/70

(节点的VM)https://nodejs.org/api/vm.html#vm_vm_runinthiscontext_code_options
(在文档)注:VM模块是不是一种安全机制。不要用它来运行不可信的代码。

(VM2)https://github.com/patriksimek/vm2
(VM2开拓)https://github.com/patriksimek/vm2/issues/76


有谁知道,没有已知漏洞使Node.js的沙箱?

+0

使用AWS lambda函数 – idbehold

+0

@idbehold - 感谢您的建议,但AWS不可用在我们的环境。希望直接在node.js服务器上执行此操作。 –

回答

0

我们还为有需要的沙箱的NodeJS库和可用列表是几乎你上面提到的一样。

在那些我们选择(VM2)https://github.com/patriksimek/vm2,在利用你提到的适用前提背景下==主机。相反,您可以将上下文设置为“沙箱”,这将提供您需要加载,需要和使用模块的完整隔离。

上述设置非常适合我们!希望它可以帮助你!