.NetCore 2.0 在生产"on premise"服务器中保护存储凭据



当我读到存储API键,配置中的连接字符串并将它们推向Git(即使在私有存储库中(时,我只是哇。我需要一个安全的网站。我已经搜索过它,并找到了一些解决方案,但它们都不够好。

1使用env vars。 essue 用纯文本暴露于用户

2保留,然后将其推入git中的配置文件(将文件夹/文件放入.gitignore。

3,应在启动配置文件上对配置进行加密并解密。问题需要用纯文本保存加密/解密密钥。4.像3一样,但加密密钥将一半的git储存在一半上。问题此组合了服务器上的git和纯文本

到目前为止,这些是我已经访问过的版本,但它们似乎都有问题。什么是最佳选项您认为使用.NETCORE 2.0时保持API键/连接字符串/秘密加密字符串。

部署服务器是带有.netcore 2.0的Centos 7" in House"服务器,Apache Server作为反向代理。

的主要问题是将秘密泄漏到您的源控制中,尤其是如果它是GitHub之类的公共存储库。为此,您根本不会将秘密保留在来源中。在开发中,您可以利用用户秘密,在生产中可以使用环境变量或Azure KeyVault。

就以加密方式实际存储秘密而言,Azure KeyVault当前是唯一可用的解决方案。但是,无论您的应用程序实际上是在Azure中托管的,您都可以使用KeyVault,虽然它不是免费的,但它几乎和免费的好处是便宜的。

除此之外,您最好的选择是环境变量。这些可以以限制的方式设置,以便只有特定的帐户才能访问它们,然后,您需要对服务器进行实际访问才能实现这一目标。虽然它没有加密,但如果值要泄漏,那将需要使您最少关注的情况。

最后,您始终可以编写自己的配置提供商,并尽一切努力。例如,您实际上可以编写一个配置,提供已处理的加密JSON或使用web.config的配置,然后加密您的web.config。

最新更新