PMG 依赖冷却期:等待新的 npm 版本

目录

PMGPackage Manager Guard)封装了 npmpnpmpip 等包管理器,使安装过程在任意安装脚本触及您的机器之前,会先经过 SafeDep 威胁情报检查并通过操作系统沙箱运行。背景信息请参阅《介绍 Package Manager Guard (PMG)》。

Dependency cooldown(依赖冷却期)​ 是一项独立的控制机制:它会修剪注册表元数据,使版本解析通常忽略过于新的发布版本。这缩小了窗口期,在该窗口期内,被攻陷或仓促发布的版本成为唯一满足 semver 范围的版本。

冷却期的工作原理

当冷却期开启时,PMG 会过滤 npm 包元数据,丢弃在配置窗口期内(例如最近 5 天)发布的版本。如果该范围仍匹配较旧的发布版本,解析器会使用它。如果窗口外的版本无法满足该范围,则安装失败,直到您扩大范围、等待或绕过冷却期(见下文)。

冷却期适用于元数据驱动的解析。它适用于已经使用固定 tarball URL 的流程(直接 tarball 安装、某些 lockfile 或缓存情况)。详情请参阅上游的 dependency cooldown 文档。

要求:​ 冷却期需要启用 proxy mode(代理模式)。在当前版本中仅支持 npm

安装和 shell 配置

bash
brew install safedep/tap/pmg

或:

bash
npm install -g @safedep/pmg

一次性配置 shell(之后需重启终端):

bash
pmg setup install

升级后重新运行 pmg setup install,以使新选项进入您的环境。

启用依赖冷却期

配置位于 config.yml(如需要可通过 pmg setup install 创建)。示例:

yaml
dependency_cooldown: enabled: true days: 5

根据您的风险承受能力调整 days:窗口越长,意味着更多安装会回退到旧版本;窗口越短,越早允许新版本被使用。

一次性安装(不修改配置文件):

bash
pmg --skip-dependency-cooldown npm install express

文档和源代码

SafeDep 博客最新内容

关注以获取开源安全与工程领域的最新更新和见解