首页/开发/CI/CD 与发布速查/外部贡献者 PR 的安全处理
流水线设计54 条

外部贡献者 PR 的安全处理

来自 fork 的代码默认不可信:不要给它机密与写权限;需要验证时用无密环境,并谨慎处理特殊触发事件。

CI/CD 与发布速查开发更新于 2026-10-12
GitHubpull_request 事件对 fork 不发放 secrets(只读 GITHUB_TOKEN);pull_request_target 需极端谨慎使用
GitLab对 fork 项目注意受保护变量与合并请求来源
原则不可信代码 + 无敏感凭据 + 只读全局资源

分场景示例

分场景示例
# fork PR:只跑不需要密钥的构建与测试
on: pull_request
permissions:
  contents: read
把敏感凭据暴露给 PR 触发的构建:等同于向外部公开;审查触发事件与变量范围。

易错点

  • 为省事发全部凭据给 PR 构建:用「需要密钥的步骤只在受信分支执行」替代
  • 第三方 action 按分支引用(@main):内容可变,换成固定版本或摘要

数据来源与参考

  • GitHub Docs《Security hardening for GitHub Actions》
  • GitHub Docs《Events that trigger workflows》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌