Azure Core Process client library for JavaScript - versie 1.0.0

@azure/core-process biedt Node.js proces-startende primitieven die ambient shell parsing vermijden. Het is bedoeld voor Azure SDK-pakketten en -tools die externe uitvoerbare bestanden op Windows, macOS of Linux moeten aanroepen.

Aan de slag

Installeer het pakket

npm install @azure/core-process

Prerequisites

Belangrijke concepten

Commando's en argumenten worden altijd apart gegeven. Het pakket biedt geen commandostring-API en staat aanroepers niet toe een shell in te schakelen.

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

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

Op Windows hebben native .exe en .com bestanden de voorkeur. Batchbestanden zijn standaard uitgeschakeld omdat willekeurige argumenten niet veilig door elke .cmd of .bat wrapper kunnen worden getransporteerd. Een caller die een batch-shim verwacht, kan kiezen voor het beperkte batchpad:

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

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

Het beperkte batchpad verwerpt commando-operators, variabeleuitbreiding, nieuwe regels en andere waarden die niet voor de start als veilig cmd.exe kunnen worden bewezen. Als een applicatie die waarden moet doorgeven, moet deze direct een native uitvoerbaar bestand of interpreter-entry point aanroepen.

Beveiligingsgrens

Dit pakket voorkomt dat commandoregelgegevens worden geïnterpreteerd door een omgevingsshell van een besturingssysteem. Het bewijst niet dat een uitvoerbaar bestand dat op PATH is betrouwbaar, saniteert code die opzettelijk aan een interpreter is doorgegeven, en voorkomt ook niet dat commando-specifieke optie injectie wordt ingenomen.

Plaats geen geheimen in commandoregelargumenten. Procesargumenten kunnen zichtbaar zijn voor andere lokale processen en besturingssysteemdiagnostiek.

Probleemoplossingsproces

Een onveilig Windows batchargument faalt met een ProcessError voordat het kindproces is aangemaakt. Geef de voorkeur aan een native uitvoerbaar bestand wanneer het argument niet kan worden gewijzigd.

Contributing

Zie de bijdragengids.