github删除文件_如何防止 GitHub 上的敏感信息被泄漏?

本文介绍了如何检查和移除GitHub上的敏感信息,包括使用Google域名搜索和Gitrob工具进行潜在泄漏检查,以及利用BFG删除敏感数据。此外,还提供了预防信息泄漏的建议,如使用交互式add和仔细审查commit。
摘要由CSDN通过智能技术生成
5a1e856983fab8af6258bc9d73350fb8.png

随着 GitHub 的用户越来越多,许多的大型仓库正陆续往 GitHub 上迁移,作为程序员,难免会不慎将敏感信息提交到 GitHub 平台上,之前的华住酒店事件也提醒了我们 GitHub 仓库中登录凭证对于企业信息安全的重要性,作为一个重度依赖 GitHub 的“码农”,本文将提供一个检查并移除敏感信息的方式。

检查潜在的泄漏

首先我们需要检查出潜在的泄漏,只有定位到敏感信息的位置后我们才能加以修复。

简易操作,使用 Google 的域名搜索,例如:

f3818507586397ba6bd3942104da67aa.png

但是,Git 作为一个版本控制系统,如此搜索能搜索到的最多也是最后一个 commit 中包含的信息,如果需要对一个个人或者组织的所有仓库的所有 commit 进行检查的话,可以使用一个成熟一些的工具,例如:Gitrob。

出于简单起见我们到 GitHub 下载 Gitrob 的可执行文件,地址为:https://github.com/michenriksen/gitrob/releases。

Gitrob 需要申请一个 "personal access token",在 GitHub 个人的 Settings 中选择 "Developer settings":

10975570e9d28f4e0e0daa27b9056a16.png

选择 "Personal access tokens" 并且生成:

4bb19527b716fa4becd7977573953bae.png

将生成好的 token 放入自己的环境变量(比如 .bashrc)中:

5bf642ff00435dce1edbc2a3b41afc10.png

如果不希望改变文件的话可以在执行前直接运行上述指令或通过加运行参数-github-access-token 启动,不过这样的话记得清理掉自己的指令历史。

开始执行分析,例如分析 LeetCode 的仓库:

ca89d27ce602807228424c1b925920e7.png

此时会在本地监听一个 127.0.0.1:9393 的地址供用户访问,如果发现了类似登录凭证的信息的话,会直观地在页面上显示:

f52c4e0638fb16d7afc0a73ee25e69ba.png

移除并删除敏感信息

当我们发现了历史 commit 中包含敏感信息后,第一步便是如何移除掉,由于 Git 是版本控制系统,直接删除文件重新 commit 就不要指望了,最简单的方法是使用一个工具——BFG。

对于不小心添加的文件,使用以下操作移除:

6292dd8a641b9bc40c3dff7e08d1e853.png

对于敏感的文件内容,使用:

fae944e62a01ad1d08470cadd9a3c772.png

如何防止发生信息泄漏事件

上文中给出了发现和移除的方法,但是这些仅仅是补救措施,我们在日常 Git 使用途中应该从哪些方面考虑来减少这类事件的发生呢?

  • 在 add 阶段不要 git add . ,而是尝试使用 git add --interactive 来审核每一个文件
  • 在 commit 前通过 git diff --cached 仔细检查文件
  • 每个特性使用自己的 branch 并且持续往 master 分支合并,合并前需多人审核
d12c25af883c71a7f2f1b6cc5d60ff1b.png

作者:Nova

声明:本文版权归力扣 LeetCode 所有,未经允许禁止转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值