Github是全球最大的使用Git進行版本控制和協作開發的平台,無論是個人還是組織,都可以創建項目並上傳代碼供他人查看和參與。然而,在享受開源協作帶來的便利的同時,我們也需要注意保護自己的隱私和知識產權。本文將從多個方面探討Github隱私設置錯誤,並提供代碼示例以幫助讀者正確設置自己的Github隱私。
一、忽略.gitignore文件
Git可以通過.gitignore文件指定哪些不需要被版本控制的文件或目錄,例如臨時文件、日誌文件、編譯生成的二進位文件等。然而,有些開發者會將.gitignore文件本身或者其中的某些規則提交到Github上,這就會導致敏感文件或目錄被意外地上傳到了倉庫中。
1、應該在本地創建.gitignore文件,並在其中添加需要排除的文件或目錄,例如:
*.log
*.pyc
__pycache__/
build/
dist/
2、確認.gitignore文件不存在於版本控制中:
$ git rm -r --cached .
3、確認.gitignore文件沒有被誤刪除:
$ git ls-files --others --ignored --exclude-standard
二、公開敏感信息
在Github上提交代碼時,有時會包含敏感信息,例如API密鑰、密碼、資料庫連接字元串等。如果不小心將這些信息提交到Github上,將會給自己、組織或者用戶帶來巨大的安全風險。
1、應該在代碼庫中搜索可能存在的敏感信息。Github提供了名為TruffleHog的工具,可以自動掃描代碼庫中的敏感信息,並將其列出:
$ pip install trufflehog
$ trufflehog --entropy=True --regex --rules=trufflehog_customrules.json https://github.com/my-username/my-repo.git
其中trufflehog_customrules.json文件是自定義規則的json文件,例如:
{
"example-api-key":{
"regex": "(?P<api_key>[sk][a-zA-Z0-9]{32})"
},
"example-aws-secret-access-key":{
"regex": "(?P<aws_secret>[A-Za-z0-9/+=]{40})"
}
}
2、應該在倉庫設置中添加Secrets,將敏感信息加密並保存。Secrets只能在工作流程或Action中使用,並且不會被包含在發布存檔中,例如:
env:
PASSWORD: ${{ secrets.PASSWORD }}
三、公開貢獻者信息
Github上創建一個代碼庫後,可以允許其他用戶進行貢獻,例如提交代碼、回答問題、提出問題等。然而,默認情況下,Github會將貢獻者的用戶名、電子郵件和提交時間等信息全部公開,這可能涉及到用戶的隱私問題。
1、應該在代碼庫的根目錄添加CONTRIBUTING.md文件,詳細說明如何做出貢獻,並提供代碼複查和問題答覆的流程:
## 如何貢獻
歡迎您貢獻代碼、提交問題和提出改進意見。在提交之前,請閱讀以下說明:
1. Fork代碼倉庫並創建一個本地克隆。
2. 創建一個新的分支並在其中進行更改。
3. 將更改推送到您的Fork中。
4. 創建一個拉取請求並描述您所做的更改。
5. 等待我們進行代碼審查並確認您的更改。
2、應該在倉庫設置中啟用Require signed commits選項,確保貢獻者提交的每個commit都被PGP簽名。這可以避免篡改commit作者的情況發生。
以上是Github隱私設置錯誤的幾個方面,關注自己的隱私,並採取措施去保護自己的知識產權和個人隱私。同時,也要提醒他人在使用Github時注意這些方面,共同構建更安全、更受信任的開源社區。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230756.html