如何防止exec执行写操作?

时间:2018-03-09 15:43:52

标签: javascript node.js

我正在尝试为各种语言构建在线编译器。这是我想要做的事情的片段。

const util = require('util');
const exec = util.promisify(require('child_process').exec);

exec('node node_temp.js').then(result => {
    console.log(result);
})
.catch(err => {
    console.log(err);
});

因此,对于JavaScript(节点)。用户将键入一些代码并通过POST请求发送,然后代码将被复制到node_temp.js然后执行。

现在用户可能会使用fs或任何其他方法删除系统中的所有文件。如何阻止exec()函数修改任何系统文件。

有些答案建议使用vmvm2。我使用了两者,虽然它创建了一个新的沙箱,exec命令仍然可以访问操作本地文件。

0 个答案:

没有答案