git:在.gitconfig中设置任何人的电子邮件地址

问题描述 投票:0回答:1

当我意识到我有可能以另一个用户的身份向存储库提交某些东西时(我在下面解释了一个场景以更好地理解),并且不认为它是安全漏洞,可以理解(见this )。

例如,假设我具有对称为AAA的某个存储库的推送访问权限,并且我的电子邮件地址为[email protected]。我可以在系统上简单地编辑~/.gitconfig并将电子邮件地址设置为其他人的电子邮件地址:[email protected]。然后,我在本地存储库中进行了一些更改并将其提交(请记住,电子邮件地址为[email protected]; git通过电子邮件地址跟踪提交)。现在,如果我尝试推送到远程存储库,它将要求输入用户名和密码。我放了我的,并且由于我可以推送访问AAA,所以它通过了。我已经代表[email protected]的所有者成功推送了提交。

因此,基本上,我可以通过这种方式模拟人并代表他们添加提交。但再次,这不被视为漏洞(出于先前的原因链接)。

问题如果git不允许如此轻松地更改电子邮件地址,那会容易得多。为什么在~/.gitconfig中每次更改电子邮件地址时,git都没有实现OAuth或类似的功能?

git security
1个回答
0
投票
正如我explained on the list,这是因为许多项目(例如Linux和Git)都是在补丁程序的基础上与维护人员合作的,该维护人员集成了来自不同人员的补丁程序。因此,能够为任何作者推送数据都很重要。如果您在补丁程序上欺骗了他人的电子邮件地址,则他们会收到未征求的评论意见,从而将其告知。

某些项目也不十分在乎谁编写了补丁,而是在乎补丁是否质量良好。作者和提交者的信息仅供参考,而不是身份检查,因此作者最终与项目无关。

[如果您担心身份欺骗,则要求提交签名非常容易。 GitHub提供此选项作为您可以使用的存储库的选项。但是,这要求其他人做出一些贡献,因为它要求人们正确设置GnuPG。

[如果您在GitHub之类的平台上进行操作,如果与PR关联的用户ID与与提交关联的用户ID不同,那么您也可以拒绝接受拉取请求,这是一种有效的方法;如果愿意,甚至可以通过CI来完成。

© www.soinside.com 2019 - 2024. All rights reserved.