【问题标题】:Bad practise saving sensitive data in .env file将敏感数据保存在 .env 文件中的不良做法
【发布时间】:2020-09-23 19:11:10
【问题描述】:
如果我们有一个私有的 github 存储库,我们在其中保存秘密并从 .env 文件中加载它,这会将用户名、密码、api 密钥、访问密钥等敏感信息保存到单一的事实来源,但是在安全性方面这是不好的做法吗?
数据在技术上是通过应用程序暴露出来的,如果某些恶意实体获得了源代码的访问权限,他们将能够看到所有的秘密,就好像存储库访问被泄露或什么的?
替代方法是在运行时(通过脚本、Docker 容器等)注入数据,这将消除此漏洞,但是否有必要?
【问题讨论】:
标签:
security
environment-variables
environment
【解决方案1】:
首先,建议不将.env 提交到git(将其添加到.gitignore),而是使用.env.example 列出所有相关变量(没有值或有虚拟值)并有代码 cmets 解释他们每个人在做什么。
其次,你的问题的答案是是的,你永远不应该向 git 提交秘密,即使你提交然后删除并再次提交,它仍然存在于 git 历史中,这也很糟糕。
今天有很多恶意脚本一直在扫描 github 存储库以查找此类数据,我不止一次听说过 AWS 帐户因此类错误而被黑客入侵,因此底线是:保留您的数据安全!
最后,即使您的 github 存储库是私有的,您也希望保留这些做法,因为它可能会被错误地公开,然后您的数据会在几秒钟内被公开!