微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何防止分叉的存储库事件触发GitHub Actions工作流?

如何解决如何防止分叉的存储库事件触发GitHub Actions工作流?

最近我想到,如果您拥有公共存储库,则绝对任何人都可以触发GitHub操作的on pull_request事件。

即:

  1. 有人克隆了我的存储库
  2. 他们将something.yml文件添加.github/workflows事件上运行的pull_request
  3. 他们创建拉取请求

然后运行他们在请求请求中指定的操作。如果您有一个自托管的跑步者,那么实际上,这个星球上的任何人都可以在自托管跑步者用户的上下文中在您的服务器上运行Shell命令。

如果这能如我所愿,那么星球上的任何人都可以简单地通过请求请求在服务器上运行任意代码。我试过了,看来是这样。

如何将在存储库上可以触发操作的钩子列入白名单?否则,我该如何安全地将Github Actions与公共存储库和自托管运行程序一起使用。我已经看到警告了……我只是假设我必须小心,不要接受来历不明的请求。

解决方法

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

我们建议您不要在公共存储库中使用自托管运行程序。

通过创建在工作流中执行代码的拉取请求,公共存储库的分支可能会在自托管运行程序计算机上运行危险代码。

这对于GitHub托管的运行器来说不是问题,因为每个GitHub托管的运行器始终是干净的隔离虚拟机,并且在作业执行结束时被销毁。

请记住,您有两个选择:

  1. 除非真正需要,否则请不要使用自承载运行器。如果需要,可以将您的回购设置为私有。

  2. 切换到GitHub托管的跑步者。

,

据我所知:

  • 不可能在公共存储库(免费层)上禁用此功能
  • 默认情况下,在私有存储库上无法对请求请求执行操作
  • 如果您拥有GitHub Enterprise,则可以从分支启用工作流

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。