2016-10-01 146 views

回答

1

它取决于平台,它可能有点自以为是,但总的来说,我认为环境变量是在许多情况下存储秘密的好方法。

例如,如果您的应用程序容易受到SQL注入,本地文件包含或某些其他应用程序级漏洞的攻击,则存储在数据库或文件中的任何秘密都可能轻易泄露。如果使用环境变量,则相同的攻击可能不可能,例如本地文件包含不能用于检索环境变量。

另外使用环境变量有助于版本控制问题,它有助于避免检查到您的VCS中的秘密。它可以让你在各种环境下更好地管理秘密,只允许相关人员能够在生产中学习这些秘密。

但是,如果您的服务器完全受损,攻击者当然也可以检查环境变量。但是如果你的服务器被攻击到了这个级别,那么你失去了。

存储秘密的更好方法的示例可能很可能列出,但它们特定于您正在使用的环境和技术堆栈。例如,在Azure中,密钥保管库有时可能会更好,在亚马逊,类似的设施是密钥管理服务(KMS)等。