``git push -force`将恶意代码发送给其他开发人员的本地env,恕不另行通知吗?

问题描述 投票:0回答:1
无需任何伪造,例如github,纯git工作流程。这意味着没有受保护的分支设置。

安全工作流

恶意成员执行

git push

(无

--force
)推出恶意代码,然后另一个成员执行
git pull
,他可以注意到他已经下载(或拉动)一些新的东西:

enter image description here 如果他足够保守,他可以使用以下命令来检查实际差异:

$ git diff 71bbeab..984e12a

在他对差异不怀疑的情况下,他可以选择不盲目类型
make

,这可能会执行恶意代码。

unsafe?工作流

方法与上述情况相同,除了恶意成员执行

git push --force

,并且可能会执行一些我不知道的黑客技巧。

在这种情况下,其他成员仍然总是有可能的

注意行动

  1. 和检查实际差异吗?

  2. 对于我测试的第一点,似乎他们可以注意到动作,因为

    git pull在拉动通过forced update

    创建的更改时显示
  3. git push --force

 + 31674dc...71bbeab master     -> origin/master  (forced update)
在第二点上,就我测试而言,似乎他们也可以检查差异,因为
git pull
要么由于合并冲突而失败,要么成功,但是显示了上面的安全工作流中所示的diff,尽管我不知道有任何可控制者可以控制的方法可以使

git
显示
git

表现

71bbeab..984e12a
frake
diff.
Edit:

在评论中讨论的问题是,这个问题是关于安全考虑的,因此“至于我测试”还不够;我们知道,必须在理论上和经验上或实验上回答安全问题。这就是为什么我也明确写了

可能还可以执行一些我不知道的黑客技巧

尽管我不知道有任何可控制的方法可以使

git pull --quiet

显示

commits是通过验证其内容和父母的哈希唯一标识的。因此,可以始终检测到任何推动动作(所谓的“恶意”):您获取的分支尖端的哈希将改变。没有任何规定。
在您的问题中粘贴的输出:您可以在origin/master中看到两个sha。

在事实后检查(例如,您关闭了第一个终端,或ran
git reflog origin/master
git security
1个回答
0
投票
origin/master

),您可以运行:

git fetch

查看所看到的各种更新 - 例如:每次跑步时如何更新的历史记录。

在您有这两个提交标识符时,您可以:

直接比较他们的内容:
git pull

compare他们的历史:
git reflog
git help reflog

提供各种额外的东西...

    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.