首页/开发/CI/CD 与发布速查/缓存投毒的防护
流水线设计54 条

缓存投毒的防护

共享缓存可被写坏:限制不受信代码写缓存,隔离分支缓存作用域,对关键制品保留校验。

CI/CD 与发布速查开发更新于 2026-10-12
风险恶意或错误内容写入缓存后被后续流水线复用
缓解仅默认分支写缓存;fork/PR 只读;缓存与制品分离
验证关键产物以校验和或签名在消费端复核

GitHub 作用域说明

GitHub 作用域说明
工作流运行可恢复:本分支缓存 + 默认分支缓存
PR 创建的缓存仅限该 PR 使用(不回写默认分支)
详见官方《Dependency caching》作用域说明
缓存当成「优化」而不是「事实来源」:缺失时构建仍应正确完成。

易错点

  • 把编译产物只存于缓存:投毒即影响成品,关键产物走制品库并校验
  • 缓存键包含外部可控输入却不做校验:不同来源内容混入同一键

数据来源与参考

  • GitHub Docs《Dependency caching》
  • GitLab Docs《Caching in GitLab CI/CD》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌