【问题标题】:What security issue is caused by changing the visibility of a fork on Github?更改 Github 上分支的可见性会导致什么安全问题?
【发布时间】:2023-02-10 11:53:09
【问题描述】:

在 Github 上,假设我分叉了一个项目,但不想在我的个人资料中显示它,因为该项目与我出于非竞争原因不允许从事的工作有关。

当我尝试将分叉设置为私有时,我在 Github 上收到此错误消息:

“出于安全原因,你不能改变分叉的可见性。”

改变分叉可见性的潜在安全隐患是什么?

【问题讨论】:

  • 我只是想了解这里的安全问题。错误消息的措辞暗示这不是商业决定,并且允许将分叉设为私有可能会导致一些安全问题,但我不明白为什么这会是一个安全问题,所以也许我遗漏了一些东西。

标签: github


【解决方案1】:

当您在 GitHub 上执行推送时,数据会被推送到您 fork 的存储库中。然后,如果有多个分叉,这些对象将被移动到一个由该网络中所有存储库共享的备用库中,包括分叉。当有很多分叉时,这可以节省大量空间,并且使拉取请求更容易,因为对象已经存在于主存储库中。

然而,这实际上意味着网络中所有分叉中的所有对象都可以通过任何分叉看到。因此,如果您的复刻是私有的,那么知道对象 ID 的人可以通过主存储库查看它并查看该数据。这将是一个安全问题,因此 GitHub 不允许这样做。

【讨论】:

  • 如果我理解正确,那么安全风险仅限于已经在主存储库中公开的对象,并且无法访问在分叉中创建的新文件,因为对象 ID 是未知的。如果在分叉的存储库中更改了一个文件,它更新后的内容是否仍然可以访问怎么办?
  • 假设人们不知道对象 ID 是不安全的。这些经常暴露在诸如构建信息之类的东西中,并且因为可以通过 Git 协议访问这些对象,正如 gitnamespaces(7) 概述的那样,即使在普通的 Git 服务器上也可以使用 deltification 进行攻击。任何分叉中的任何对象都应该是公开可见的。
【解决方案2】:

我认为这只是 GitHub 的产品设计,而不是安全性的考虑。

【讨论】:

    猜你喜欢
    • 2011-12-31
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    相关资源
    最近更新 更多