Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 305

依赖固定

依赖固定 是什么?

依赖固定把软件依赖以精确版本进行声明,通常结合加密哈希,使构建始终消费同一批工件并抵御供应链篡改的实践。


依赖固定将宽松的版本范围(如 "^1.0.0")替换为精确版本,并尽量在锁文件(package-lock.json、poetry.lock、Pipfile.lock、Gemfile.lock、go.sum、Cargo.lock)中携带加密哈希。这样构建就具备可复现性,并能抵御静默升级、依赖混淆、typosquatting 和被篡改版本。现代实践还会把 GitHub Actions 及其他 CI 插件固定到 commit SHA 而非可变 tag。固定必须与主动的漏洞监控(SCA、Dependabot、Renovate)结合,确保补丁仍能流转,否则应用会陈旧并积累 CVE。SLSA、NIST SSDF、OWASP 以及可复现构建倡议都把哈希固定列为关键控制项。

示例

  1. 01

    把所有第三方 GitHub Actions 固定到 commit SHA,而不是 v3 这种可变 tag。

  2. 02

    在 CI 中使用 pip --require-hashes,搭配全部带哈希的 requirements.txt。

常见问题

依赖固定 是什么?

把软件依赖以精确版本进行声明,通常结合加密哈希,使构建始终消费同一批工件并抵御供应链篡改的实践。 它属于网络安全的 应用安全 分类。

依赖固定 是什么意思?

把软件依赖以精确版本进行声明,通常结合加密哈希,使构建始终消费同一批工件并抵御供应链篡改的实践。

依赖固定 是如何工作的?

依赖固定将宽松的版本范围(如 "^1.0.0")替换为精确版本,并尽量在锁文件(package-lock.json、poetry.lock、Pipfile.lock、Gemfile.lock、go.sum、Cargo.lock)中携带加密哈希。这样构建就具备可复现性,并能抵御静默升级、依赖混淆、typosquatting 和被篡改版本。现代实践还会把 GitHub Actions 及其他 CI 插件固定到 commit SHA 而非可变 tag。固定必须与主动的漏洞监控(SCA、Dependabot、Renovate)结合,确保补丁仍能流转,否则应用会陈旧并积累 CVE。SLSA、NIST SSDF、OWASP 以及可复现构建倡议都把哈希固定列为关键控制项。

如何防御 依赖固定?

针对 依赖固定 的防御通常结合技术控制与运营实践,详见上方完整定义。

依赖固定 还有哪些其他名称?

常见的别称包括: 版本固定, 哈希固定。

相关术语