asp.net 如何在C# Web应用程序中安全地存储数据库连接字符串?

w80xi6nr  于 2023-02-26  发布在  .NET
关注(0)|答案(3)|浏览(125)

我有一个C# web应用,它的数据库连接字符串保存在web.config文件中。这个文件也是git仓库的一部分。我该如何保存连接字符串,以防止它在恶意用户访问我的仓库时被破坏?
加密文件会像this old question的答案所建议的那样解决我的问题吗?如果是,我如何在.NET中做到这一点?

izkcnapc

izkcnapc1#

有很多工具可以在Git存储库中安全地存储机密,您会发现一个很好的概述herearchive 1archive 2),其中讨论了权衡。
在本文中提到的那些,我只使用了git-secret,它有这样的概要:

  1. git-secret加密文件并将其存储在git存储库中,为每次提交提供更改历史记录。
  2. git-secret不需要任何额外的部署操作,只需提供适当的私钥(以允许解密),并使用git secret reveal解密所有机密文件。
    至于如何为ASP.NET服务器提供密码这一更广泛的问题,这是一个很大的主题,我建议阅读微软的Protecting Connection Strings and Other Configuration Information指南。
yzckvree

yzckvree2#

您不应提交敏感数据或凭据。
您可以使用用户密钥在本地工作。
部署到服务器或宿主环境时,应使用环境变量。
这样做的另一个好处是允许您在每个环境中设置不同的值。

h79rfbju

h79rfbju3#

你应该(正如我看到我的项目)存储在launchSettings.json。
例如

"environmentVariables": {
        "ConnectionStrings__MyDb":"Server=localhost\\SQLEXPRESS;Database=My;Trusted_Connection=True"
      },

此文件对于所有程控仪都不同。

相关问题