Клиентская библиотека Azure Core Process для JavaScript — версия 1.0.0

@azure/core-process предоставляет Node.js примитивы для запуска процессов, которые избегают парсинга оболочки окружающих. Он предназначен для пакетов и инструментов Azure SDK, которым необходимо вызывать внешние исполняемые файлы на Windows, macOS или Linux.

Начало работы

Установите пакет

npm install @azure/core-process

Необходимые условия

Ключевые понятия

Команды и аргументы всегда предоставляются отдельно. Пакет не предоставляет API командной строки и не позволяет вызывающим активировать оболочку.

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

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

В Windows предпочтительнее нативные .exe и .com файлы. Пакетные файлы по умолчанию отключены, потому что произвольные аргументы не могут безопасно передаваться через все .cmd оболочки..bat Звонящий, ожидающий пакетную прокладку, может выбрать ограниченный путь партии:

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

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

Ограниченный пакетный путь отклоняет операторы команд, расширение переменных, новые строки и другие значения, которые нельзя доказать безопасность до cmd.exe запуска. Если приложению необходимо передать эти значения, оно должно напрямую вызвать нативный исполняемый файл или точку входа интерпретатора.

Граница безопасности

Этот пакет предотвращает интерпретацию данных командной строки окружающей операционной системой. Он не доказывает, что исполняемый файл, находящийся на PATH , надёжен, не очищает код, намеренно переданный интерпретатору, и не предотвращает внедрение командной опции.

Не вставляйте секреты в аргументы командной строки. Аргументы процесса могут быть видимы для других локальных процессов и диагностики операционной системы.

Устранение неполадок

Небезопасный пакетный аргумент Windows не срабатывает до ProcessError создания дочернего процесса. Предпочитайте нативный исполняемый файл, если аргумент нельзя изменить.

Contributing

См. руководство для вклада.