C# ASP.Net core如何在非Azure主机中保护连接字符串敏感数据
我是ASP.Net核心的新手,我尝试开发ASP.Net核心MVCWebAPI。我需要连接到我的数据库。我不知道我应该把我的连接字符串放在哪里。我把它放在appsettings.json文件中。但当我将API部署到非Azure主机时,它将公开我的数据库密码。我试过secret manager,但它似乎只是针对开发阶段,不确定我是否理解正确。我尝试输入环境变量,但在IIS hsoting中它不起作用。 我想知道如何在部署到非Azure主机时保护我的敏感数据。我应该把它放在哪里?它是免费的、开源的。你可以在那里存储你的连接字符串和其他敏感数据。另外还有一个for.net你的主要选择是:C# ASP.Net core如何在非Azure主机中保护连接字符串敏感数据,c#,asp.net-core,C#,Asp.net Core,我是ASP.Net核心的新手,我尝试开发ASP.Net核心MVCWebAPI。我需要连接到我的数据库。我不知道我应该把我的连接字符串放在哪里。我把它放在appsettings.json文件中。但当我将API部署到非Azure主机时,它将公开我的数据库密码。我试过secret manager,但它似乎只是针对开发阶段,不确定我是否理解正确。我尝试输入环境变量,但在IIS hsoting中它不起作用。 我想知道如何在部署到非Azure主机时保护我的敏感数据。我应该把它放在哪里?它是免费的、开源的。你
- JSON(未加密)
- 环境变量(未加密)
- Azure密钥库(加密)
您是否担心ISP会读取您的appsettings.json?我不确定这一点,但我相信IIS不提供appsettings.json文件,因此如果有人尝试浏览它,他们只会得到一个404@Steve有些,只是担心。读了一些文章说把敏感数据存储在配置文件中不是个好主意。所以,想想现实世界如何部署连接字符串。@Stevenlemens ya,它将无法冲浪。但在部署到hsoting时,将其存储在appsettings.json文件中是安全的?它不会通过IIS提供服务,但在有人可以访问您的服务器的情况下,这仍然是一个需要解决的问题。许多Microsoft docs for ASP.NET Core似乎希望将人们推到Azure以获得许多不同的服务,以解决可能出现的问题或安全问题,老实说,这有点令人沮丧。您可以在部署时加密appsettings,并在运行时解密。当我发布我的项目时,我会在服务器上发布一个“appsettings.production.secrets.json”,我会确保此json文件中的详细信息是正确的。如果存储在环境变量中,则它仅适用于特定用户。当API部署到主机时,它将无法工作,因为API无法获取连接字符串。我说得对吗?如果存储在appsettings.json中,并且是纯文本,则会有危险,因为它会暴露敏感数据。另请查看AWS安全参数存储。您不必为外部环境变量绑定到azure