侧边栏壁纸
博主头像
ahao

A student who writes the code of Python and Java.

  • 累计撰写 15 篇文章
  • 累计创建 22 个标签
  • 累计收到 12 条评论
git

Git清除敏感信息

ahao
2022-01-30 / 0 评论 / 0 点赞 / 195 阅读 / 1,027 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

背景

使用git推送isp-cdu项目到远程仓库,密码提交到了 Git 记录上。众所周知,公有仓库的 Git 记录是所有人可见的。所以一旦有敏感信息,不法分子就可以从提交的 commit 记录中寻找突破口。

解决

使用BFG清除

BFG是为专门为清除 Git 提交记录中带有敏感信息而产生的。 需要本地安装JDK8环境。当发现后,重新将密码去除后重新提交到 GitHub。此时,如果不看 commit 记录就不会知道历史版本,bfg 这个工具就为了防止有心人通过你的 commit 记录捕获你的敏感信息

安装BFG

1.下载jar包链接

https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar

2.将jar包拷贝到项目根目录

3.克隆远程仓库的 .git 文件夹

git clone --mirror git@gitee.com:ahaox/isp-cdu.git

4.在本地创建 replace.txt

文本名字是任意的,文本内容需要将密码填上,默认替换成 REMOVED ,也可以将其替换成自己想要的字符,规则如下所示

前面的 PASSWORD1 为仓库中的敏感信息,==> 后为替换的内容,
例如: password==> ******

PASSWORD1 # Replace with '***REMOVED***' (default) 
PASSWORD2==>examplePass # replace with 'examplePass' instead 
PASSWORD3==> # replace with the empty string 
regex:password=\w+==>password= # Replace, using a regex 
regex:\r(\n)==>$1 # Replace Windows newlines with Unix newlines

5. 在项目根目录下执行命令

需要注意两点,一是文本名字与路径,二是相关参数,也可用 --replace-text

java -jar bfg-1.14.0.jar -rt ./replace.txt isp-cdu.git

6.提交更改

进入备份到本地的 .git 目录,第一句命令自行修改

cd isp-cdu.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive 
git push

image.png

远程仓库的所有提交记录中的敏感信息已经被替换。

image.png

0

评论区