Azure Core Process Client Library für JavaScript - Version 1.0.0

@azure/core-process bietet Node.js prozessstartende Primitive, die Umgebungs-Shell-Parsing vermeiden. Es ist für Azure SDK-Pakete und -Tools gedacht, die externe ausführbare Dateien unter Windows, macOS oder Linux aufrufen müssen.

Erste Schritte

Installiere das Paket

npm install @azure/core-process

Prerequisites

Zentrale Konzepte

Befehle und Argumente werden immer separat bereitgestellt. Das Paket bietet keine Befehlsstring-API und erlaubt es Aufrufern nicht, eine Shell zu aktivieren.

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

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

Unter Windows sind native .exe und .com Dateien bevorzugt. Batchdateien sind standardmäßig deaktiviert, da beliebige Argumente nicht sicher durch jeden .cmd oder .bat Wrapper transportiert werden können. Ein Anrufer, der einen Batch-Shim erwartet, kann sich für den eingeschränkten Batch-Pfad entscheiden:

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

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

Der eingeschränkte Batchpfad lehnt Befehlsoperatoren, Variablenerweiterung, Zeilenwechsel und andere Werte ab, die vor cmd.exe Starts nicht als sicher bewiesen werden können. Wenn eine Anwendung diese Werte weitergeben muss, muss sie direkt eine native ausführbare Datei oder einen Interpreter-Einstiegspunkt aufrufen.

Sicherheitsgrenze

Dieses Paket verhindert, dass Kommandozeilendaten von einer Umgebungs-Betriebssystemshell interpretiert werden. Es stellt nicht fest, dass eine auf gefundene PATH ausführbare Datei vertrauenswürdig ist, bereinigt nicht Code, der absichtlich an einen Interpreter weitergegeben wird, und verhindert keine befehlsspezifische Option-Injektion.

Platziere keine Geheimnisse in Kommandozeilen-Argumenten. Prozessargumente können für andere lokale Prozesse und Betriebssystemdiagnostiken sichtbar sein.

Troubleshooting

Ein unsicheres Windows-Batchargument schlägt mit einem ProcessError fehl, bevor der Kindprozess erstellt wird. Bevorzuge eine native ausführbare Datei, wenn das Argument nicht geändert werden kann.

Contributing

Siehe den beitragenden Leitfaden.