避免博客泄露个人信息

本文介绍了在博客写作中如何保护个人隐私,避免敏感信息泄露的实用技巧和最佳实践。

常用的免费开源平台 GitHub Pages 比较受欢迎,许多博客使用 GitHub Pages 进行发布。
但其免费版要求公开仓库才允许公开访问。而仓库公开后,一些标记为草稿的文章也可以从 Git 仓库访问到。 尽管公开的文章较少包含敏感信息, 但开源博客的源库可能会泄露个人信息,以下是一些常见的信息泄露关键词,欢迎评论补充。

敏感词

中文关键词 英文关键词
密码 password
账号 account
身份证 id
银行卡 card
支付宝 alipay
微信 wechat
手机号 phone
家庭住址 address
工作单位 company
社保卡 card
驾驶证 driver
护照 passport
信用卡 credit
密钥 key
配置文件 ini
凭证 credential
用户名 username

正则搜索:

(密码|账号|身份证|银行卡|支付宝|微信|手机号|家庭住址|工作单位|社保卡|驾驶证|护照|信用卡|username|password|passwd|account|key\s*:|\.ini|credential|card|bank|alipay|wechat|passport|id\s*:|phone|address|company)

如果使用 VSCode 作为博客编辑器,可以使用正则搜索快速进行全站搜索,检查可能泄露信息的位置。

Git 历史

Git 历史可能包含信息泄露,通过简单的脚本即可扫描开源博客的历史提交信息。

如果是自己的仓库,可以通过以下方式清除历史。如果需要保留历史信息,则不要清除。

请务必确认理解命令含义,它会清理历史, 请谨慎操作,操作前请备份重要数据。

git reset --soft ${first-commit}
git push --force

其它扫描仓库方式

https://github.com/trufflesecurity/trufflehog

  • Find, verify, and analyze leaked credentials
  • 17.2k stars
  • 1.7k forks

img

其它发布博客方式

  • Github Pro 支持将私有仓库发布到 Pages, Pro 四美元每月
  • 设置为私有仓库, 发布到 Cloudflare Pages
  • 分库, 一个私有库存放正在编辑的文章, 一个公开库存放可发布的文章

如果你的博客使用giscus这样依赖 github 的评论系统, 那就仍然需要一个公开仓库.

良好的习惯 vs 良好的机制

在讨论开源博客泄露个人信息的问题时, 有许多人认为, 只要注意不将敏感信息上传到仓库, 就不会有问题.

这是一句无用的废话, 如同要求程序员不要写 bug 一样, 正确但是无用. 靠习惯来保护个人信息, 是不可靠的. 别轻易相信一个人的习惯, 他可能随时会忘记.

写作有时会有一些临时的语句, 特别是程序员的技术博客, 简短的脚本可能随手就写了, 未必会时时记住使用环境变量, 因此留下敏感信息的可能性一定存在.

相信多数人能明白好的习惯是什么, 因此这里不讨论良好的习惯, 主要分享如何通过机制来避免泄露个人信息.

首先是分库, 手稿库和发布库分开, 所有发布在 Github Pages 上的文章都是经过审核的, 且不会有 draft 状态的文章泄露.

还可以通过 Github Action, 在每次提交时, 扫描敏感信息, 如果有敏感信息, 则不允许提交, 参阅trufflehog

本文分享的正则搜索, 只是一个简单的示例, 未集成到任何流程中, 你可以根据自己的需求, 做更多的定制化工作, 将其集成到流程中.

参考