Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
@azure/core-process fournit Node.js primitives lançant des processus qui évitent l’analyse syntaxique ambiante du shell. Il est destiné aux packages et outils Kit de développement logiciel (SDK) Azure qui doivent invoquer des exécutables externes sur Windows, macOS ou Linux.
Premiers pas
Installer le package
npm install @azure/core-process
Prerequisites
Concepts clés
Les commandes et arguments sont toujours fournis séparément. Le package ne fournit pas d’API de chaîne de commande et n’autorise pas les appelants à activer un shell.
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("git", ["rev-parse", "--show-toplevel"]);
console.log(stdout);
Sur Windows, la version native .exe et .com les fichiers sont préférées. Les fichiers batch sont désactivés par défaut car des arguments arbitraires ne peuvent pas être transportés en toute sécurité à travers chaque .cmd enveloppe de OR .bat . Un appelant qui s’attend à une cale batch peut choisir le chemin de batch restreint :
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("npm", ["--version"], {
allowWindowsBatchFiles: true,
});
console.log(stdout);
Le chemin de batch restreint rejette les opérateurs de commande, l’expansion des variables, les nouvelles lignes et d’autres valeurs qui ne peuvent pas être prouvées sûres avant cmd.exe le démarrage.
Si une application doit passer ces valeurs, elle doit invoquer directement un exécutable natif ou un point d’entrée d’interpréteur.
Limite de sécurité
Ce package empêche les données en ligne de commande d’être interprétées par un shell de système d’exploitation ambiant. Il n’établit pas qu’un exécutable trouvé sur PATH est fiable, ne désinfecte pas intentionnellement le code transmis à un interpréteur, ni n’empêche l’injection d’options spécifique à une commande.
Ne placez pas de secrets dans les arguments en ligne de commande. Les arguments de processus peuvent être visibles par d’autres processus locaux et les diagnostics du système d’exploitation.
Résolution des problèmes
Un argument batch Windows non sécurisé échoue avec un ProcessError avant la création du processus enfant. Privilégiez un exécutable natif lorsque l’argument ne peut pas être modifié.
Contribuer
Consultez le guide des contributions.
Azure SDK for JavaScript