Azure Core Process client library per JavaScript - versione 1.0.0

@azure/core-process fornisce Node.js primitive che avviano processi e evitano l'analisi degli shell ambient. È pensato per pacchetti e strumenti Azure SDK che necessitano di invocare eseguibili esterni su Windows, macOS o Linux.

Come iniziare

Installare il pacchetto

npm install @azure/core-process

Prerequisiti

Concetti chiave

Comandi e argomentazioni sono sempre forniti separatamente. Il pacchetto non fornisce un'API di stringa di comandi e non consente ai chiamanti di abilitare una shell.

import { execFile } from "@azure/core-process";

const { stdout } = await execFile("git", ["rev-parse", "--show-toplevel"]);
console.log(stdout);

Su Windows, si preferiscono nativi .exe e .com file. I file batch sono disabilitati di default perché argomenti arbitrari non possono essere trasportati in sicurezza attraverso ogni .cmd wrapper di or..bat Un chiamante che si aspetta un batch shim può scegliere il percorso limitato del batch:

import { execFile } from "@azure/core-process";

const { stdout } = await execFile("npm", ["--version"], {
  allowWindowsBatchFiles: true,
});
console.log(stdout);

Il percorso batch limitato rifiuta gli operatori di comando, l'espansione variabile, le nuove linee e altri valori che non possono essere dimostrati sicuri prima cmd.exe dell'avvio. Se un'applicazione deve passare questi valori, deve invocare direttamente un eseguibile nativo o un punto di ingresso dell'interprete.

Limite di sicurezza

Questo pacchetto impedisce che i dati della riga di comando vengano interpretati da una shell di sistema operativo ambientale. Non stabilisce che un eseguibile trovato su PATH sia affidabile, non sanifica il codice intenzionalmente passato a un interprete, né impedisce l'iniezione di opzioni specifiche per comando.

Non mettere segreti negli argomenti della riga di comando. Gli argomenti del processo possono essere visibili ad altri processi locali e alle diagnostiche dei sistemi operativi.

Risoluzione dei problemi

Un argomento batch di Windows non sicuro fallisce con un ProcessError prima che il processo figlio venga creato. Preferisci un eseguibile nativo quando l'argomento non può essere modificato.

Contributing

Consulta la guida ai contributi.