CNode

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

Ttimesking发布于14 年前最后回复14 年前8 回复7890 浏览0 收藏

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

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

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

本人新人请多指教

查看回复

回复 (8)

L
leizongmin#1·14 年前

主要通过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);
P
pittmak#3·14 年前

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

P
pengchun#5·14 年前

看到这个就害怕

C
cattail2012#7·14 年前

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

F
fengmk2#8·14 年前
引用 pengchun看到这个就害怕

哈哈,可怕的需求。

参与回复
登录后即可参与回复。登录