我需要运行来自未知源的代码,该代码用于验证或排序某些内容。 如何在Node.js中安全地执行此操作? Python有RestrictedPython,类似的东西有什么吗? 浏览器还有ADsafe,但可以在Node.js中使用吗?
Node有一个绝妙的工具可以做到这一点,即node.vm。基本上,您可以在其自己的上下文中运行脚本,有效地将其隔离起来。 当然,由于Node在单个线程上运行,一个有害的脚本总是可以通过执行以下操作关闭您的服务器:while (true) {;} 为了完全安全,您需要生成一个新进程并使用消息传递进行通信。