开发者

How do I run the system commands in javascript?

开发者 https://www.devze.com 2023-02-17 06:42 出处:网络
I need to list all th开发者_开发问答e files in the javascript such as \"ls\"??Please give more information of your environment.

I need to list all th开发者_开发问答e files in the javascript such as "ls"??


Please give more information of your environment.

Unprivileged JavaScript in a browser can neither list files nor execute programs for security reasons.

In node.js for example executing programs works like this:

var spawn = require('child_process').spawn,
var ls  = spawn('ls', ['-l']);
ls.stdout.on('data', function (data) {
   console.log(data);
});

And there is a direct way to list files using readdir()


You can't run system commands on the client with JS since it works inside a browser sandbox. You'd need to use some other client side tech like Flash, ActiveX or maybe Applets


An even easier way in node.js is:

var fs = require('fs');
var ls = fs.readdirSync('/usr');

The variable ls now contains an array with the filenames at /usr.


AFAIK, you can not run any system command, this will violate the security model. You can do send a print command but I wonder anything beyond that is possible.


The short answer is - you should NOT do this as it opens a huge attack vector against your application. Imagine someone running "rm -rf" :).

If you MUST do this and you are 1000% sure you allow only a few commands which cannot cause any harm you can call a server page using Ajax. That page could run the specified command and return response. Again I emphasize this is a huge security risk and should better NOT be done.

0

精彩评论

暂无评论...
验证码 换一张
取 消