Domanda Come posso eseguire i comandi di sistema in javascript?


Ho bisogno di elencare tutti i file in javascript come "ls" ??


10
2018-03-16 06:44


origine


risposte:


Si prega di fornire maggiori informazioni sul proprio ambiente.

JavaScript non privilegiato in un browser non può né elencare file né eseguire programmi per motivi di sicurezza.

In node.js per esempio l'esecuzione di programmi funziona così:

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

E c'è un modo diretto per elencare i file usando readdir ()


14
2018-03-16 06:59



Non è possibile eseguire comandi di sistema sul client con JS poiché funziona all'interno di una sandbox del browser. Avresti bisogno di usare qualche altra tecnologia lato client come Flash, ActiveX o forse Applet


4
2018-03-16 06:50



AFAIK, non puoi eseguire alcun comando di sistema, questo violerà il modello di sicurezza. Puoi inviare un comando di stampa, ma mi chiedo che qualcosa oltre a ciò sia possibile.


2
2018-03-16 06:46



Un modo ancora più semplice in node.js è:

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

La variabile ls ora contiene un array con i nomi dei file in / usr.


2
2017-11-11 21:32



La risposta breve è - NON dovresti farlo mentre apre un enorme vettore di attacco contro la tua applicazione. Immagina qualcuno che corre "rm -rf" :).

Se DEVI farlo e sei sicuro al 1000% che permetti solo alcuni comandi che non possono causare alcun danno, puoi chiamare una pagina del server usando Ajax. Quella pagina potrebbe eseguire il comando specificato e restituire la risposta. Ancora una volta sottolineo che questo è un enorme rischio per la sicurezza e che NON dovrebbe essere fatto meglio.


1
2018-03-16 06:53