首页 > 其他分享 >公司敏感数据被上传Github,吓得我赶紧改提交记录

公司敏感数据被上传Github,吓得我赶紧改提交记录

时间:2023-12-08 14:45:44浏览次数:31  
标签:Github -- GitHub 修改 git 小富 提交 敏感数据 上传

大家好,我是小富~

说个事吧!最近公司发生了一个事故,有同事不小心把敏感数据上传到了GitHub上,结果被安全部门扫描出来了。这件事导致公司对所有员工进行了一次数据安全的培训。对于这个事我相信,有点工作经验的人都不会故意去上传这些敏感文件,多数应该是误操作导致的。

这个事件也给了提了个醒,我平时会写博客用GitHub比较多,吓得我赶紧对自己所有的GitHub仓库进行了排查,庆幸没有提交过敏感信息的记录。但我注意到在过往的提交记录中,有使用公司的Git账号信息提交过代码,TMD这就很难受了。

避免后续产生不必要的麻烦,我决定修改一下提交记录中涉及公司的信息。

注意:以下操作只限于用在自己的Git仓库,别在公司的项目里秀,切记!

设置用户信息

Git进行版本控制的时候,每次的代码提交记录中都包含用户的用户名和邮箱,这些信息在你进行每一次提交时都会被记录下来。我们保不齐会错误地使用了错误的信息,或者需要改用另一个邮箱地址。那这种情况,我们就需要更改我们提交记录中的用户名和邮箱。

可以通过全局设置或者特定仓库设置两种方式来修改我们提交时的用户信息。

全局

全局设置可以影响所有的代码提交。如果你在全局范围内设置了用户名和邮箱后,除非你在特定的项目中覆盖这个设置,否则这个设置会作为默认设置应用于所有的提交。

git config --global user.name "程序员小富"
git config --global user.email "邮箱信息"

你可以通过如下的命令来查看Git的全局配置:

git config --global -l

特定仓库

如果你只想修改某个特定仓库的用户信息,可以在特定仓库的根目录下进行如下操作,Git会将设置得用户名和邮箱仅应用于当前仓库。

git config user.name "程序员小富"
git config user.email "邮箱信息"

篡改提交记录

单条修改

Git提供了amend命令,可以用来修改最新的提交记录。注意,这个命令只会修改最近一次的提交,它能实现以下的功能:

  • 修改提交信息
  • 添加漏掉的文件到上一次的提交中
  • 修改之前提交的文件

用法

它的使用方法比较简单,直接替换用户名、邮箱信息,或者如果已经修改了仓库的用户信息,直接执行命令重置。

# 替换用户名、邮箱信息
git commit --amend --author="{username} <{email}>" --no-edit

# 如果已经修改了仓库的用户信息,直接执行命令重置
git commit --amend --reset-author --no-edit

看到最近一次提交的用户名是xiaofu,不是我的个人信息程序员小富,使用amend命令修改一下。

效果

执行命令后最近一次的提交信息从xiaofu变更到了程序员小富,更改成功和预期的效果一致。

git commit --amend --author="程序员小富 <[email protected]>" --no-edit

修改完成之后,别忘了推送到远程仓库。

 git push origin master

批量修改

Git官网提供了很多种修改提交记录信息的方法,这里主要介绍下filter-branch,它可以通过脚本的方式批量修改历史提交记录信息。

filter-branch 它能实现如下的功能,正好符合我们要批量修改历史提交记录中用户、邮箱的需求。

  • 全局修改邮箱地址;
  • 从每一个提交中移除一个文件;
  • 使一个子目录做为新的根目录

用法

历史提交记录中有很多用户名xiaofu提交的记录,现在使用filter-branch批量将他们改写成程序员小富

以下是官网提供的脚本,其逻辑很简单:如果遇到用户名为xiaofu的提交记录,将该提交记录的用户名和邮箱修改为程序员小富[email protected]

git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_NAME" = "xiaofu" ];
        then
                GIT_AUTHOR_NAME="程序员小富";
                GIT_AUTHOR_EMAIL="[email protected]";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

为了方便操作,创建一个脚本modifyCommit.sh,放在项目的根目录执行。

chmod +x modifyCommit.sh
sh modifyCommit.sh

执行脚本后稍作等待,出现如下的输出说明已经在执行修改操作了。

执行完毕看到历史提交记录中的用户名xiaofu全都变更成了程序员小富,说明脚本生效了。

如果没有修改成功,可以再次执行,但会出现错误提示A previous backup already exists in refs/original/,说明已经执行过了,执行以下命令清除缓存即可再次执行。

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

修改完成之后,别忘了推送到远程仓库。

 git push origin master

GitHub工具

管理GitHub项目,我推荐大家使用GitHub官方的Git客户端工具GitHub Desktop,这个工具专门用来管理GitHub仓库,洁面简洁使用也很方便,主打一个轻量。

有一点比较好,在提交代码时,如果提交的用户信息与当前账号GitHub信息不一致还会有提示,这样就不怕误用其他信息提交了。

总结

如果大家平时会维护自己的GitHub仓库,建议一定一定要仔细的检查提交的代码,像注释里的公司邮箱信息、代码包路径中的公司标识,凡事涉及公司信息的数据一概去除,不要惹一些不必要的麻烦,数据泄漏这种重可大可小不是闹着玩的。

还有GitHub别留太多的个人信息,手机号邮箱就别放了,头像也别傻乎乎的放个自己大头贴,给自己留点回旋的余地。核心思工作和生活要隔离!!!

我是小富~ 下期见

标签:Github,--,GitHub,修改,git,小富,提交,敏感数据,上传
From: https://www.cnblogs.com/chengxy-nds/p/17887130.html

相关文章

  • C# 文件上传下载
    1.首先,文件的上传下载我们需要了解什么是虚拟路径和物理路径物理路径就是绝对路径,虚拟路径就是相对路径。绝对路径是指定文件的绝对位置。大家都知道,在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,例如只要看到这个路径:c:/website......
  • element-plus中的文件上传
    官网:https://element-plus.org/zh-CN/component/upload.html简单使用:场景:与表单项一起提交,但是需要回显功能,可以用过本地url预览方式实现<!--此处需要关闭element-plus的自动上传,不需要配置action等参数只需要做前端的本地预览图片即可,无需在提交前上传图片......
  • C# 本地文件的上传和下载
    本文主要介绍一下,在APS.NET中文件的简单上传于下载,上传是将文件上传到服务器的指定目录下,下载是从存入数据库中的路径,从服务器上下载。1.上传文件(1)页面代码<tablealign="center"cellpadding="0"cellspacing="0"width="100%"><tr>......
  • 博客上传图片,自动添加水印的办法
    博客上传图片,自动添加水印的办法效果使用PicList,在typora里将图片上传图床时,自动添加水印。右下角有水印图片。PicListGithub地址https://github.com/Kuingsmile/PicListreadmehttps://github.com/Kuingsmile/PicList/blob/dev/README_cn.md时间晚了,不多做介绍了。和P......
  • 使用jsfpd截图并上传到文件服务器
    需求将网页上的html表单,截图并生成pdf,通过blob上传到文件服务器//获取表单元素domconstel=document.getElementById('open-reply_form');constheight=el.clientHeight;//截图,获取img图像html2canvas(el).then((canvas)=>{l......
  • 微信号上传附件小程序
    微附件是一个旨在简化公众号附件管理的实用工具。它为运营人员提供了一个轻松上传和管理多种文件格式(包括Word、Excel、PPT、PDF、TXT等)的平台,并使得用户能够直接下载这些文件。鉴于微信公众号本身并不内置此类功能,微附件的应用因此变得极为重要。首先,要访问微附件的官方网页,您可以......
  • c# 文件上传与下载
    文件上传: API上传的方法://上传的文件格式publicstring[]ExtentsfileName=newstring[]{".doc",".xls",".png",".jpg"};//路径publicstringUrlPath="/Upload/";///<summary&......
  • github开源ocr神器
    这篇文章给大家推荐一款免费,开源,可批量的离线OCR软件。1Umi-OCR简介免费:本项目所有代码开源,完全免费。方便:解压即用,离线运行,无需网络。批量:可批量导入处理图片,结果保存到本地txt/md/jsonl多种格式文件。也可以即时截屏识别。高效:采用PaddleOCR-jsonC++识别引擎。只要电......
  • .Net文件上传和下载
    1.前端控件代码<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scriptsrc="js/jquery-3.4.1.min.js"type="text/javascript"charset="utf-8"></script> &......
  • PHP+JS实现大文件切片上传功能实现实例源码
    近期公司的项目中,涉及到上传大文件的问题,大文件上传用普通表单上传时出现的问题是,无法断点续存,一但中途中断上传,就要重头开始,这很明显不是我们想要的,所以经过一番查询,学习了一下大文件分割上传的方法。并且使用简单的php做服务端处理程序实现一个功能demo,供以后回顾使用。本人也是......