在服务器中执行javascript,服务器端,nodejs

时间:2014-01-28 10:54:02

标签: javascript node.js exec server-side

我想构建一个类似于cloud9 ide的原型应用程序。让它变得很酷的是你可以使用它来运行服务器端代码,我认为这样做会非常危险。

  1. 这怎么可能? 或至少关于 c9 如何执行和创建服务器实例的概念

  2. 是否有使用node.js具有相同功能的开源项目?

2 个答案:

答案 0 :(得分:1)

他们可能使用某种虚拟化来运行服务器代码,这样就包含了代码(您可以使用LXC之类的东西来实现这一点。)

Cloud9 is actually open source,并在node.js上运行

答案 1 :(得分:1)

@Ezequiel说的是什么,但也是:

https://gf3.github.io/sandbox/,它产生一个新节点进程,该进程在使用http://nodejs.org/api/vm.html创建的受限环境中执行代码。

看看消息来源以获得一个想法:

  • sandbox.js生成一个运行shovel.js的新进程,并使用STDIN发送代码
  • shovel.js创建了运行代码的环境

执行过程可以作为没有权限的用户运行。

PS。我并不是说这是完全安全的(vm并没有声称是这样,请参阅vm.runInNewContext