如何让nodejs开发的rest api下面运行系统命令行?
发布于 3年前 作者 timesking 2201 次浏览

如何让nodejs开发的rest api下面运行系统命令行?

比如rest api 是 http://url/lsdir

实际上后台调用的是shell的ls命令

本人新人请多指教

8 回复

主要通过child_process模块来运行系统命令,并获取输出的内容。例:

var http = require('http');
var exec = require('child_process').exec;

var server = http.createServer(function (req, res) {
  var cmd = req.url.substr(1);
  exec(cmd, function (err, stdout, stderr) {
    if (err) {
      res.end(err.toString());
    }
    else {
      res.end('stdout:\n' + stdout + '\n\nstderr:\n' + stderr);
    }
  });
});
server.listen(80);

在浏览器中打开 http://127.0.0.1/ls 即可看到列出了当前目录的文件

这个就是webshell嘛,实现这简单的,接受参数,child_process.exec(),然后把结果返回。

看到这个就害怕

@leizongmin 话说回来, Vim 那个是… 不是这个的话怎么去实现啊?

不过不能无条件执行指令啊,否则会产生系统漏洞

哈哈,可怕的需求。

回到顶部