git - 如何验证我签出了正确的代码?
问题描述
假设我们正在尝试构建一个安全关键项目。
当我运行时git clone <url>
,我如何确保我签出的代码与 GitHub 上的代码相同?只比较提交哈希就足够了吗?
假设我的git
安装不是恶意的,我应该假设git
我已经覆盖了吗?
解决方案
当我运行 git clone 时,我如何保证我签出的代码与 GitHub 上的代码相同?
最简单的方法是使用git log
,查看顶部的提交哈希并将其与 GitHub 上最新提交的哈希进行比较。
只比较提交哈希就足够了吗?
Git 使用 SHA1。可能会导致冲突,以便黑客使用相同的提交哈希创建其他东西。另一种可能性是使用与数据不匹配的哈希创建提交。
假设我的 git 安装不是恶意的,我是否应该假设 git 已经覆盖了我?
但是只要你使用 HTTPS/SSL 就没有人偷过 SSL 证书(如果有人从 GitHub 上偷了一个,这将是一件非常大的事情,他还可以更改 Web UI),git clone
不会检查其他任何东西(假设您使用正确的 URL)。
如果您使用 HTTP,则您没有 SSL 证书的保护,其他人可以向您发送任何其他内容。
推荐阅读
- r - 使用 DPLYR,如何使用需要重复的向量和向量名称构建 data.frame
- docker - 尝试进入 steup 时出现 Invoiceninja 运行时异常
- django - 如何在此处传递 ID(错误 put() 缺少 1 个必需的位置参数:'request')在表单模板 Django 中
- reactjs - 无效的挂钩调用。钩子只能在函数组件的主体内部调用。请救我脱离疯狂
- hadoop - 使用 hadoop 库在 YARN 上等待日志聚合
- javascript - 使用 Google 身份验证重定向时卡住
- vb.net - vb.net 循环遍历选定的项目列表框
- debugging - tct 命令在后台是如何工作的?
- swiftui - SwiftUI - 如何在视图上拖动和释放时获得通知
- flutter - 如何在 Flutter 应用中设置前台通知?