我有一个C# web应用,它的数据库连接字符串保存在web.config文件中。这个文件也是git仓库的一部分。我该如何保存连接字符串,以防止它在恶意用户访问我的仓库时被破坏?
加密文件会像this old question的答案所建议的那样解决我的问题吗?如果是,我如何在.NET中做到这一点?
我有一个C# web应用,它的数据库连接字符串保存在web.config文件中。这个文件也是git仓库的一部分。我该如何保存连接字符串,以防止它在恶意用户访问我的仓库时被破坏?
加密文件会像this old question的答案所建议的那样解决我的问题吗?如果是,我如何在.NET中做到这一点?
3条答案
按热度按时间izkcnapc1#
有很多工具可以在Git存储库中安全地存储机密,您会发现一个很好的概述here(archive 1,archive 2),其中讨论了权衡。
在本文中提到的那些,我只使用了git-secret,它有这样的概要:
git-secret
加密文件并将其存储在git
存储库中,为每次提交提供更改历史记录。git-secret
不需要任何额外的部署操作,只需提供适当的私钥(以允许解密),并使用git secret reveal
解密所有机密文件。至于如何为ASP.NET服务器提供密码这一更广泛的问题,这是一个很大的主题,我建议阅读微软的Protecting Connection Strings and Other Configuration Information指南。
yzckvree2#
您不应提交敏感数据或凭据。
您可以使用用户密钥在本地工作。
部署到服务器或宿主环境时,应使用环境变量。
这样做的另一个好处是允许您在每个环境中设置不同的值。
h79rfbju3#
你应该(正如我看到我的项目)存储在launchSettings.json。
例如
此文件对于所有程控仪都不同。