gpt4 book ai didi

github-actions - 如何防止 GitHub 操作工作流被 fork 的存储库事件触发?

转载 作者:行者123 更新时间:2023-12-04 11:35:49 29 4
gpt4 key购买 nike

我最近突然想到 on pull_request如果您拥有公共(public)存储库,则任何人都可以触发 GitHub 操作的事件。
IE。:

  • 有人克隆了我的存储库
  • 他们添加了 something.yml文件到 .github/workflowspull_request 上运行事件
  • 他们创建了一个拉取请求

  • 然后运行他们在拉取请求中指定的操作。如果您有自托管运行器,那么实际上地球上的任何人都可以在自托管运行器用户的上下文中在您的服务器上运行 shell 命令。
    如果这像我认为的那样工作,那么地球上的任何人都可以通过拉取请求在您的服务器上运行任意代码。我试过这个,似乎是这样。
    如何将可以在存储库上触发的操作列入白名单?否则,我如何安全地将 Github Actions 与公共(public)存储库和自托管运行器一起使用。我已经看到了警告......我只是假设我必须小心不要接受来自未知来源的拉取请求。

    最佳答案

    据我所知,你不能。这就是运行者和 GitHub Actions 的设计方式。如果您有一个公共(public)存储库,那么拥有一个自托管的运行器真的不是一个好主意。甚至 §Self-hosted runner security with public repositories 中的文档部分提到:

    We recommend that you do not use self-hosted runners with public repositories.


    Forks of your public repository can potentially run dangerous code on your self-hosted runner machine by creating a pull request that executes the code in a workflow.


    This is not an issue with GitHub-hosted runners because each GitHub-hosted runner is always a clean isolated virtual machine, and it is destroyed at the end of the job execution.


    考虑到这一点,您有两个选择:
  • 除非您真的需要,否则不要使用自托管运行器。如果您需要它,请将您的 repo 设为私有(private)。
  • 切换到 GitHub 托管的运行器。
  • 关于github-actions - 如何防止 GitHub 操作工作流被 fork 的存储库事件触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64553739/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com