Azure Core Process client library for JavaScript - version 1.0.0

@azure/core-process tillhandahåller Node.js processstartande primitiva som undviker ambient shell-parsing. Den är avsedd för Azure SDKs-paket och verktyg som behöver anropa externa exekverbara filer på Windows, macOS eller Linux.

Komma igång

Installera paketet

npm install @azure/core-process

Förutsättningar

Viktiga begrepp

Kommandon och argument tillhandahålls alltid separat. Paketet tillhandahåller inget kommandosträngs-API och tillåter inte anropare att aktivera ett shell.

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

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

På Windows föredras native .exe och .com filer. Batchfiler är inaktiverade som standard eftersom godtyckliga argument inte kan transporteras säkert genom varje .cmd eller .bat wrapper. En anropare som förväntar sig en batch-shim kan välja den begränsade batchvägen:

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

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

Den begränsade batchvägen avvisar kommandooperatorer, variabelexpansion, linjeskift och andra värden som inte kan bevisas säkra före cmd.exe start. Om en applikation behöver skicka dessa värden måste den direkt anropa en inhemsk exekverbar fil eller tolkarinträdespunkt.

Säkerhetsgräns

Detta paket förhindrar att kommandoradsdata tolkas av ett omgivande operativsystemskal. Den fastställer inte att en exekverbar fil som hittas på PATH är pålitlig, sanerar inte kod som medvetet skickats till en tolk, eller förhindrar kommando-specifik alternativinjektion.

Placera inte hemligheter i kommandoradsargument. Processargument kan vara synliga för andra lokala processer och operativsystemdiagnostik.

Felsökning

Ett osäkert Windows-batchargument misslyckas med en ProcessError innan barnprocessen skapas. Föredra en inbyggd körbar fil när argumentet inte kan ändras.

Contributing

Se bidragsguiden.