Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
@azure/core-process fornece Node.js primitivas de lançamento de processos que evitam a análise ambiental de shell. Destina-se a pacotes e ferramentas do SDK do Azure que precisam de invocar executáveis externos no Windows, macOS ou Linux.
Introdução
Instale o pacote
npm install @azure/core-process
Pré-requisitos
Conceitos-chave
Os comandos e argumentos são sempre fornecidos separadamente. O pacote não fornece uma API de strings de comandos e não permite aos chamadores ativar um shell.
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("git", ["rev-parse", "--show-toplevel"]);
console.log(stdout);
No Windows, é preferido o nativo .exe e .com os ficheiros. Os ficheiros batch são desativados por defeito porque argumentos arbitrários não podem ser transportados de forma segura através de todos .cmd os envelopes de OR .bat . Um chamador que espera um batch shim pode optar pelo caminho restrito do lote:
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("npm", ["--version"], {
allowWindowsBatchFiles: true,
});
console.log(stdout);
O caminho lotado restrito rejeita operadores de comando, expansão de variáveis, novas linhas e outros valores que não podem ser provados como seguros antes cmd.exe do início.
Se uma aplicação precisar de passar esses valores, deve invocar diretamente um executável nativo ou um ponto de entrada de interpretador.
Fronteira de segurança
Este pacote impede que dados de linha de comandos sejam interpretados por um shell ambiente do sistema operativo. Não estabelece que um executável encontrado em PATH seja fiável, não limpa o código intencionalmente passado a um interpretador, nem impede a injeção de opções específicas de comando.
Não coloque segredos em argumentos de linha de comandos. Os argumentos dos processos podem ser visíveis para outros processos locais e diagnósticos do sistema operativo.
Resolução de problemas
Um argumento de lote inseguro do Windows falha com um ProcessError antes de o processo filho ser criado. Prefiro um executável nativo quando o argumento não pode ser alterado.
Contributing
Consulte o guia de contribuições.
Azure SDK for JavaScript