Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
@azure/core-process zapewnia Node.js prymitywy uruchamiające procesy, które unikają parsowania powłoki otoczenia. Jest przeznaczony dla pakietów i narzędzi Azure SDK, które muszą wywoływać zewnętrzne pliki wykonywalne na Windows, macOS lub Linux.
Wprowadzenie
Instalowanie pakietu
npm install @azure/core-process
Wymagania wstępne
Kluczowe pojęcia
Polecenia i argumenty są zawsze podawane osobno. Pakiet nie zapewnia API dla łańcuchów poleceń i nie pozwala wywołującym na włączenie powłoki.
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("git", ["rev-parse", "--show-toplevel"]);
console.log(stdout);
Na Windows preferowane są natywne .exe i .com pliki. Pliki wsadowe są domyślnie wyłączone, ponieważ dowolne argumenty nie mogą być bezpiecznie przesyłane przez każdy .cmd.bat lub wrapper. Dzwoniący, który spodziewa się podkładki wsadowej, może wybrać ścieżkę ograniczonej wsadowej:
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("npm", ["--version"], {
allowWindowsBatchFiles: true,
});
console.log(stdout);
Ścieżka wsadowa z ograniczonym zakresem odrzuca operatory poleceń, rozszerzanie zmiennych, nowe linie i inne wartości, których nie można udowodnić przed cmd.exe rozpoczęciem działalności.
Jeśli aplikacja musi przekazać te wartości, musi bezpośrednio wywołać natywny plik wykonywalny lub punkt wejściowy interpretera.
Granica zabezpieczeń
Ten pakiet zapobiega interpretacji danych wiersza poleceń przez otaczającą powłokę systemu operacyjnego. Nie ustali, że plik wykonywalny znaleziony na jest PATH godny zaufania, nie oczyszcza kodu celowo przekazanego interpreterowi ani nie zapobiega wstrzykiwaniu opcji specyficznych dla poleceń.
Nie umieszczaj sekretów w argumentach wiersza poleceń. Argumenty procesów mogą być widoczne dla innych lokalnych procesów i diagnostyki systemu operacyjnego.
Rozwiązywanie problemów
Niebezpieczny argument wsadowy Windows kończy się niepowodzeniem przed ProcessError utworzeniem procesu potomnego. Wolę natywny plik wykonywalny, gdy argument nie może być zmieniony.
Contributing
Zobacz przewodnik po wkładzie w artykuł.
Azure SDK for JavaScript