gpt4 book ai didi

git - 伪装成 github.com 用户

转载 作者:太空狗 更新时间:2023-10-29 14:28:46 25 4
gpt4 key购买 nike

在使用 git bash 提交到 github.com 上的存储库一段时间后,我发现了一些有趣的行为。

我可以使用 git config 命令将本地存储库中的电子邮件地址设置为我喜欢的任何内容...

git config user.email "MyColleague@work.com"

在使用他的 github.com 电子邮件地址这样做之后,我所做的所有提交都会出现在他的个人资料下,连同他推断的用户名和个人资料图片!

我正在使用我存储的凭据向 github.com 进行身份验证,但我能够伪装成他。

我的两个问题是:-

为什么是可能的,是设计使然吗?

如何查看通过 https 而不是提交的实际推送的身份验证/用户帐户详细信息?

最佳答案

这是可能的,因为 git 的设计方式,而不是 GitHub。您正在进行身份验证以访问存储库。作为具有写入权限的人,您可以将提交推送到存储库。 GitHub 没有任何方法来验证提交本身。您可能已经从其他用户那里 merge 了它们。当您推送时,您并不是在说“这些是我的 提交”。您是说“这些是要添加到存储库的提交,我有权将提交添加到存储库。”

事实上,这正是 pull 请求的工作方式。您向我发送提交,我批准将它们添加到(将它们 pull 入)存储库。提交上仍然有你作为作者的名字,因为你创建了它们。但我正在使用我的授权(和凭据)来添加它们。当我这样做时,我并没有伪装成你。

没有跟踪谁将每个提交推送到上游。那没有存储在任何地方。假定具有推送访问权限的人正在为提交提供担保。

Git 中有一个更强大的身份验证机制,那就是signed tag。 .如果您想验证您是将给定标签附加到给定提交的人,那么您可以对其进行签名。这仍然不能证明提交的所谓“作者”是有效的。这只是证明您是签名者。

Joe Phillips 在下面指出,您现在可以签署个人提交。如果您将 -S 添加到 commit 命令,您将得到这个。您现在还可以在使用 mergepull 时验证签名。如果您的整个团队都使用它,您很可能可以获得所需的身份验证级别。

(请记住,在 git 中,“提交”是存储库中给定点的所有代码。它不仅仅是你所做的更改。有时这是一个混淆点,所以它是值得的时刻牢记在心。)

关于git - 伪装成 github.com 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57224363/

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