公司敏感資料被上傳Github,嚇得我趕緊改提交記錄
來源:程式設計師小富
說個事吧!最近公司發生了一個事故,有同事不小心把敏感資料上傳到了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="程式設計師小富 <515361725@qq.com>" --no-edit
修改完成之後,別忘了推送到遠端倉庫。
git push origin master
批次修改
Git官網提供了很多種修改提交記錄資訊的方法,這裡主要介紹下filter-branch
,它可以透過指令碼的方式批次修改歷史提交記錄資訊。
filter-branch
它能實現如下的功能,正好符合我們要批次修改歷史提交記錄中使用者、郵箱的需求。
全域性修改郵箱地址; 從每一個提交中移除一個檔案; 使一個子目錄做為新的根目錄
用法
歷史提交記錄中有很多使用者名稱xiaofu
提交的記錄,現在使用filter-branch
批次將他們改寫成程式設計師小富
。
以下是官網提供的指令碼,其邏輯很簡單:如果遇到使用者名稱為xiaofu
的提交記錄,將該提交記錄的使用者名稱和郵箱修改為程式設計師小富
和515361725@qq.com
。
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_NAME" = "xiaofu" ];
then
GIT_AUTHOR_NAME="程式設計師小富";
GIT_AUTHOR_EMAIL="515361725@qq.com";
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別留太多的個人資訊,手機號郵箱就別放了,頭像也別傻乎乎的放個自己大頭貼,給自己留點回旋的餘地。核心思工作和生活要隔離!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2999659/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 明天面試?嚇得我趕緊手寫了一個Spring面試Spring
- 如何在 SAP UI5 應用裡安全儲存一些敏感的資料,避免被上傳到 Github 去的風險UIGithub
- 手把手教你刷github提交記錄Github
- 趕緊收藏!Spring MVC 萬字長文筆記,我願奉你為王者筆記!SpringMVC筆記
- 好用的資料視覺化工具軟體,趕緊收藏!視覺化
- 記錄我的資料庫學習資料庫
- SqlServer查詢資料改動歷史記錄SQLServer
- 免費api分享,趕緊收藏~API
- 知識更新太快,趕緊學
- 敏感資料
- 記錄我github的hexo的搭建Blog之路GithubHexo
- 將現有MySQL資料庫改為大小寫不敏感MySql資料庫
- Github上點贊90k的計算機基礎、作業系統、網路筆記,趕緊收藏Github計算機作業系統筆記
- 波音公司也中招?Lockbit宣稱從該公司竊取了大量敏感資料
- 又一知名平臺資料庫暴雷!1300萬條敏感記錄曝光資料庫
- github提交操作Github
- GitHub提交PRGithub
- 資料產品必備:這些超有料的大牛,還不趕緊關注!
- 常用API大全分享!趕緊收藏起來!API
- 通過 gitlab 介面獲取程式碼提交記錄和改動行數Gitlab
- 【躲過裁員,成功上岸】發現小公司有不好的苗頭,趕緊學習!
- 被黑客攻擊的一小時內,這十件事得趕緊做黑客
- 各類好用的API推薦,趕緊收藏API
- 新駭客攻擊改變戰術目標對準敏感資料(轉)
- 我記得我曾喜歡過冬天
- 為什麼我喜歡資料庫?沒那麼複雜和嚇人資料庫
- 推薦一個以動畫效果顯示github提交記錄的黑科技工具:Gource動畫GithubGo
- 000 上傳本地庫到Github遠端庫過程全記錄Github
- python快速開發框架,趕緊收藏起來!Python框架
- 9道前端面試題及答案,趕緊收藏!前端面試題
- 免費好用的API介面彙總,趕緊收藏API
- 急!請教資料庫記錄改變了如何通知頁面更新?資料庫
- 2021年最強資料分析工具盤點!想轉行跳槽的小白趕緊收藏
- .NET API 介面資料傳輸加密最佳實踐記錄示例API加密
- 提交程式碼到githubGithub
- GitHub學習除錯記錄Github除錯
- AWS捅大簍子了,近1G敏感資料Github裸奔5小時Github
- 一款流行的會計APP暴露了敏感的個人和公司資料APP