在服务器和 Git Repo 上使用应用程序密钥的最佳实践

Best Practices when using Application Keys on Server and Git Repo

在服务器上使用应用程序密钥(例如 Twitter API 密钥或 Parse.com 密钥)的最佳做法是什么?

我们有一些 NodeJS 代码需要部署到将访问 Twitter 和 Parse.com API 的云服务器。将 config.js 模块中的密钥推送到 Git 存储库然后在服务器上克隆该存储库是否安全(或者我只是偏执狂)?

Git 存储库很容易通过不安全的分叉泄漏、开发人员的一台计算机被感染、意外暴露等

即使 git 存储库是完全安全的(不可能),您也打开了其他攻击媒介:如果您扩展,让更多的人参与一个项目会怎么样?您基本上必须最终信任他们每个人的密钥。

将密钥存储在任何版本控制软件中没有意义,只需将它们保存在安全的地方并进行备份,然后使用 SSH 上传到最终服务器。

遵循最佳实践永远不会有坏处:

  1. 已在存储库中构建但未填充 config.js 以简化设置。
  2. 使用 SSH 或其他安全方法修改最终服务器上的 config.js,插入值。

P.S。你一点也不偏执(这个时候太过谨慎几乎是不可能的)。