我需要运行由未知来源提供的代码来验证或排序。
如何在Node.js中安全地执行此操作?
Python有RestrictedPython,类似的东西?
浏览器还有ADsafe,但是它可以在Node.js中使用吗?
答案 0 :(得分:10)
Node有一个很好的工具,node.vm。基本上,您可以在自己的上下文中运行脚本,有效地对其进行沙盒化。
当然,由于Node在单个线程上运行,因此有害脚本总是可以通过执行以下操作来关闭服务器:
while (true) {;}
为了完全安全,您需要生成一个新进程并使用消息传递进行通信。