如何保护版本控制之外的机密信息(例如测试密码)?

Rab*_*ski 3 security version-control mercurial

我的一些程序需要一些机密数据(主要是身份验证)才能正常工作.main()在开发和测试时,我经常将自己的凭据放在源代码中以查看我的代码是否有效,并在一切正常时删除它们.但是,很容易忘记删除它们.

什么是防止这些机密数据最终出现在版本控制提交中的好方法?

我使用Mercurial(和Python).

我一直在想:

  • 在提交时自动运行一些敏感数据检查脚本,如果找到一些特定的字符串就会中止(看起来不是万无一失,需要维护敏感的字符串)
  • 将机密数据存储在其他地方(哪里?,如何实际导入/使用它们?).
  • 使用测试分支(但并没有真正解决问题)
  • 提供机密数据作为命令行参数(太不实用)

Amb*_*ber 6

将认证数据放在配置文件中,然后将该配置文件添加到VCS中的一组被忽略的文件中(在Mercurial中,即.hgignore).