在服务器和Git Repo上使用应用程序密钥时的最佳实践
在服务器上使用应用程序密钥(如Twitter API密钥或Parse.com密钥)的最佳做法是什么?
我们有一些NodeJS代码需要部署到一个云端服务器,它将访问Twitter和Parse.com API。 将config.js模块中的密钥推送到Git仓库是否安全,然后在服务器上克隆该仓库(或者我只是偏执狂)?
Git回购可以通过不安全的叉子,开发人员的电脑之一受到感染,意外暴露等等而轻易泄露。
即使git repo是完全安全的(不可能),你也正在打开其他的攻击媒介:如果你扩展,让更多的人在一个项目上工作? 你基本上不得不最终相信他们每个人的钥匙。
将密钥存储在任何版本控制软件中都没有意义,只需将它们保存在安全的地方,并使用SSH上传到最终的服务器即可。
遵循最佳实践永远不会伤害:
- 在存储库中具有结构化但未填充的
config.js
以简化设置。 - 使用SSH或其他安全方法修改最终服务器上的
config.js
,插入值。
PS你根本就没有偏执(这个时候几乎不可能太谨慎)。