Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
@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.
Azure SDK for JavaScript