如何在Node.js中安全地执行未知的Javascript代码?

时间:2011-06-19 11:56:35

标签: javascript node.js eval

我需要运行由未知来源提供的代码来验证或排序。

如何在Node.js中安全地执行此操作?

Python有RestrictedPython,类似的东西?

浏览器还有ADsafe,但是它可以在Node.js中使用吗?

1 个答案:

答案 0 :(得分:10)

Node有一个很好的工具,node.vm。基本上,您可以在自己的上下文中运行脚本,有效地对其进行沙盒化。

当然,由于Node在单个线程上运行,因此有害脚本总是可以通过执行以下操作来关闭服务器:

while (true) {;}

为了完全安全,您需要生成一个新进程并使用消息传递进行通信。