Azure Core Process client library for JavaScript - verze 1.0.0

@azure/core-process poskytuje Node.js primitiva spouštějící procesy, které se vyhýbají analýze okolního shellu. Je určen pro balíčky a nástroje Azure SDK, které potřebují vyvolávat externí spustitelné soubory na Windows, macOS nebo Linuxu.

Začínáme

Nainstalujte balíček

npm install @azure/core-process

Předpoklady

Klíčové koncepty

Příkazy a argumenty jsou vždy dodávány samostatně. Balíček neposkytuje API pro příkazové řetězce a neumožňuje volajícím povolit shell.

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

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

Na Windows jsou preferovány nativní .exe.com a soubory. Dávkové soubory jsou ve výchozím nastavení zakázány, protože libovolné argumenty nelze bezpečně přenášet přes každý .cmd or .bat wrapper. Volající, který očekává dávkovou podložku, se může rozhodnout pro omezenou dávkovou cestu:

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

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

Omezená dávková cesta odmítá operátory příkazů, rozšiřování proměnných, nové řádky a další hodnoty, které nelze před zahájením prokázat jako bezpečné cmd.exe . Pokud aplikace potřebuje tyto hodnoty předat, musí přímo volat nativní spustitelný soubor nebo interpreter.

Hranice zabezpečení

Tento balíček zabraňuje interpretaci dat z příkazové řádky okolním operačním systémem. Neprokazuje, že spustitelný soubor nalezený na je PATH důvěryhodný, nečistí kód úmyslně předaný interpreteru ani nebrání příkazově specifické injekci možností.

Nevkládejte tajemství do argumentů v příkazové řádku. Argumenty procesů mohou být viditelné pro jiné lokální procesy a diagnostiku operačního systému.

Řešení problémů

Nebezpečný dávkový argument ve Windows selže s před ProcessError vytvořením podřízeného procesu. Preferujte nativní spustitelný soubor, pokud nelze argument změnit.

Contributing

Podívejte se na průvodce příspěvky.