我被玩弄的git时,我意识到,它可能对我承诺的东西到存储库作为另一个用户(说明如下场景以便更好地理解),它不被视为一个安全漏洞,是可以理解的(见本)。
例如,假设我可以推送访问某些名为AAA的存储库,而我的电子邮件地址是[email protected]
。我只需~/.gitconfig
在系统上进行编辑,然后将电子邮件地址设置为其他人的电子邮件地址:[email protected]
。然后,我在本地存储库中进行了一些更改并将其提交(请记住,使用电子邮件地址[email protected]
; git通过电子邮件地址跟踪提交)。现在,如果我尝试推送到远程存储库,它将要求输入用户名和密码。我放下了我的账号,因为我可以推送到AAA,所以它通过了。我已经代表的所有者成功推送了提交[email protected]
。
因此,基本上,以这种方式,我可以模拟人并代表他们添加提交。再次,这不被视为漏洞(之前有原因的链接)。
问题
如果git不允许如此轻松地更改电子邮件地址,将会容易得多。为什么每次在中更改电子邮件地址时git都没有实现OAuth或类似的功能~/.gitconfig
?
正如我在清单中解释的那样,这是因为许多项目(例如Linux和Git)都是在补丁程序的基础上与维护人员合作的,该维护人员集成了来自不同人员的补丁程序。因此,能够为任何作者推送数据都很重要。如果您在补丁程序上欺骗了其他人的电子邮件地址,则他们会收到未征求的评论,从而将其告知。
一些项目也不太在乎谁写了补丁,而是在乎补丁是否质量良好。作者和提交者信息仅供参考,而不是身份检查,因此作者最终与项目无关。
如果您担心身份欺骗,则要求提交签名非常容易。GitHub将此作为您可以使用的存储库的选项。但是,这会给其他人带来一些负担,因为它要求人们正确设置GnuPG。
如果您在GitHub之类的平台上运行,并且与PR关联的用户ID与与提交关联的用户ID不同,那么您也可以拒绝接受请求请求。如果愿意,甚至可以通过CI来完成。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句