我正在升级一个“遗留”基础设施,其中使用了少数 PHP、Rails 和 Perl (CGI) 应用程序。从历史上看,这些应用程序是使用作为程序变量散布到所有源代码中的数据库凭据编写的。
我们正在讨论改变这种情况的方法。一项提案建议将所有数据库凭据移至 Apache/etc/apache2/envvars
文件。另一个建议建议使用 Hashicorp 的保险库(不太完全理解这个野兽是如何工作的)。
该envvars
方法似乎更好,但我认为这意味着任何受感染的应用程序都可以完全访问任何其他应用程序的数据库凭据。我想知道一个更好的方法是否会包括对应用程序的某种分区(不好的例子,但它确实发生了)Bob 的受损“待办事项列表”不会通过 Apache 环境变量危及 HR 应用程序的凭据。
避难所……很奇怪。据我所知,它会在数据库中创建临时数据库凭据。我不完全了解它是如何工作的,所以我无法判断它是否合适。
保护 Web 服务器上的数据库凭据的最佳做法是什么?任何事情都比将它们留在源代码中要好,但是如果我们要在这里进行重大更改,我宁愿不必因为误解而再次这样做。我已经查看了此处和此处的链接,对此几乎没有讨论。