目录
PMG(Package Manager Guard)封装了 npm、pnpm、pip 等包管理器,使安装过程在任意安装脚本触及您的机器之前,会先经过 SafeDep 威胁情报检查并通过操作系统沙箱运行。背景信息请参阅《介绍 Package Manager Guard (PMG)》。
Dependency cooldown(依赖冷却期) 是一项独立的控制机制:它会修剪注册表元数据,使版本解析通常忽略过于新的发布版本。这缩小了窗口期,在该窗口期内,被攻陷或仓促发布的版本成为唯一满足 semver 范围的版本。
冷却期的工作原理
当冷却期开启时,PMG 会过滤 npm 包元数据,丢弃在配置窗口期内(例如最近 5 天)发布的版本。如果该范围仍匹配较旧的发布版本,解析器会使用它。如果窗口外的版本无法满足该范围,则安装失败,直到您扩大范围、等待或绕过冷却期(见下文)。
冷却期适用于元数据驱动的解析。它不适用于已经使用固定 tarball URL 的流程(直接 tarball 安装、某些 lockfile 或缓存情况)。详情请参阅上游的 dependency cooldown 文档。
要求: 冷却期需要启用 proxy mode(代理模式)。在当前版本中仅支持 npm。
安装和 shell 配置
brew install safedep/tap/pmg或:
npm install -g @safedep/pmg一次性配置 shell(之后需重启终端):
pmg setup install升级后重新运行 pmg setup install,以使新选项进入您的环境。
启用依赖冷却期
配置位于 config.yml(如需要可通过 pmg setup install 创建)。示例:
dependency_cooldown:
enabled: true
days: 5根据您的风险承受能力调整 days:窗口越长,意味着更多安装会回退到旧版本;窗口越短,越早允许新版本被使用。
一次性安装(不修改配置文件):
pmg --skip-dependency-cooldown npm install express文档和源代码
-
pmg
-
npm
-
supply-chain
-
security
SafeDep 博客最新内容
关注以获取开源安全与工程领域的最新更新和见解