8

在 GitHub 上:

Eve 在她的某个流行项目的 fork 中编写了一些代码,提交为"Eve" <eve@example.com>,并向上游发送拉取请求。

Alice 没有注意到 Eve 的代码包含她从事的流行项目的后门,认为代码很棒,并合并了拉取请求。

后来,每个人都拥有了。

爱丽丝的老板鲍勃想解雇任何获得代码的人。他做了一个git log --full,并看到:

commit deadbeef
Author: Eve <eve@example.com>
Commit: Eve <eve@example.com>

git log --fuller没有帮助,而且 Eve 没有直接推送到存储库的权限。

Bob 可以挖掘拉取请求的历史,并以这种方式找到它,但这很糟糕。有没有办法在本地解决这个问题?

4

1 回答 1

3

通常使用 git,您可以使用 git signoff(请参阅What is the Sign Off feature in Git for?),然后添加一个更新挂钩来拒绝任何没有签名的推送。但是,GitHub 似乎通常不允许自定义挂钩,但您可以添加一个 post-receive-hook 来记录所有未来的推送事件:

http://help.github.com/post-receive-hooks/

如果这是已经发生的事件,则可能很难(或不可能?)追踪。您也许可以查看 git reflog 和 ssh 日志,但我不确定 GitHub 是否提供此类信息。如果这真的是安全漏洞,那么至少值得询问他们拥有哪些日志。

于 2012-03-20T22:08:03.070 回答