JavaScript 的 Azure 核心进程客户端库
@azure/core-process 提供节点.js 进程发射原始,避免
环境外壳分析。 用于Azure SDK软件包和工具
在Windows、macOS或Linux上需要引用外部可执行文件.
开始
安装软件包
npm install @azure/core-process
先决条件
- 节点.js的LTS版本。 。 。 .
关键概念
命令和参数总是分开提供。 软件包没有 提供命令字符串 API,不允许呼叫者启用外壳.
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("git", ["rev-parse", "--show-toplevel"]);
console.log(stdout);
在视窗上, 本地 .exe 财务报告和审定财务报表 .com 文件首选。 批次文件为
默认已禁用, 因为任意参数无法安全传送
通过每个 .cmd 或者说 .bat 包装 来电者,期望一个批次shim可以
选择进入限制批次路径 :
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("npm", ["--version"], {
allowWindowsBatchFiles: true,
});
console.log(stdout);
限制批量路径拒绝命令操作员,可变扩展,
新行,以及以前无法证明安全的其他值 cmd.exe 启动.
如果申请需要通过这些数值,它必须援引本地人
可执行或解释器直接进入点.
安全边界
此软件包防止命令行数据被环境解释
操作系统外壳。 它没有确定在下列文件中发现的可执行文件:
PATH 值得信赖, 消毒代码 故意传递给翻译,
或防止特定命令选项注射.
在命令行参数中不要设置秘密 。 程序参数可以是: 其他局部过程和操作系统诊断可见.
解决问题
不安全的 Windows 批量参数失败 ProcessError 在孩子出生前
进程被创建。 当参数不能执行时, 优先选择本地可执行文件
换了.
捐款
见 贡献指南。 。 。 .