我使用Heroku部署Rails应用程序。我将敏感数据(例如API密钥和密码)存储在Heroku的环境变量中,然后在利用各种API的rake任务中使用这些数据。
我只是想知道Heroku的环境变量有多安全?有什么方法可以哈希这些变量,同时保留以某种方式在后台使用它们的功能?
我在这里遇到了上一个线程:将密码作为环境变量(而不是纯文本)存储在配置文件中是否安全?。
但是,当我仍然需要散列密码来执行重要的后台任务时,并不能完全涵盖实例。
有几件事(主要是我的看法):
-
1. API密钥!=密码
当您谈论时API Keys
,您在谈论的是通常已经非常安全的公共令牌。如今,API的本质是它们需要某种先验身份验证(无论是在应用程序级别还是在用户级别),以创建更可靠的安全级别。
我首先要确保在ENV
变量中存储哪种类型的数据。如果是纯密码(用于电子邮件等),则可以考虑将您的设置迁移到其中一个云提供商(SendGrid
/Mandrill
等),从而仅允许使用API密钥
API密钥的优点在于可以对其进行更改,同时又不影响基本帐户,并且可以将交互性限制在API约束范围内。密码会影响基本帐户
-
2. ENV变量是操作系统级别的
它们是运行流程的操作环境的一部分。例如,正在运行的进程可以查询TEMP环境变量的值以发现合适的位置来存储临时文件,或者可以查询HOME或USERPROFILE变量来查找运行该进程的用户所拥有的目录结构。
您必须记住,环境变量基本上意味着您将数据存储在所environment
要操作的环境中。一般是指“操作系统”,但如果需要,也可以是操作系统的虚拟实例。
最重要的是,您的ENV变量存在于服务器的核心中。与文本文件位于硬盘驱动器目录中的方式相同-环境变量位于操作系统的核心
除非您收到服务器本身的黑客攻击,否则就很难以编程方式获取ENV变量数据,至少以我的经验而言是这样。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句