首页 > 解决方案 > 如何验证我签出了正确的代码?

问题描述

假设我们正在尝试构建一个安全关键项目。

当我运行时git clone <url>,我如何确保我签出的代码与 GitHub 上的代码相同?只比较提交哈希就足够了吗?

假设我的git安装不是恶意的,我应该假设git我已经覆盖了吗?

标签: gitsecurity

解决方案


当我运行 git clone 时,我如何保证我签出的代码与 GitHub 上的代码相同?

最简单的方法是使用git log,查看顶部的提交哈希并将其与 GitHub 上最新提交的哈希进行比较。

只比较提交哈希就足够了吗?

Git 使用 SHA1。可能会导致冲突,以便黑客使用相同的提交哈希创建其他东西。另一种可能性是使用与数据不匹配的哈希创建提交。

假设我的 git 安装不是恶意的,我是否应该假设 git 已经覆盖了我?

但是只要你使用 HTTPS/SSL 就没有人偷过 SSL 证书(如果有人从 GitHub 上偷了一个,这将是一件非常大的事情,他还可以更改 Web UI),git clone不会检查其他任何东西(假设您使用正确的 URL)。

如果您使用 HTTP,则您没有 SSL 证书的保护,其他人可以向您发送任何其他内容。


推荐阅读