在Git中存储Web.config

时间:2017-03-02 15:00:05

标签: c# asp.net .net github

我怀疑在Git-hub中存储web.config文件,是否建议使用?

这不是安全漏洞吗?

不同环境下的web.config也会因环境不同而不同,因此如何保持不同版本的web.config是同一个repo和branch?

2 个答案:

答案 0 :(得分:2)

是的,是的。

使用服务器级密钥存储敏感信息,如数据库连接字符串。

在IIS中,您可以使用ASPNET_REGIIS - 它允许您添加IIS可以访问的秘密配置,但不能以纯文本形式保存Web文件。

在.NET核心中,有新的Microsoft.Extensions.SecretManager.Tools可以做同样的事情。

对于不同的环境,您可以have multiple web.config files,例如web.release.configweb.debug.config

答案 1 :(得分:1)

您的web.config文件本身不是安全问题。你可能拥有的键就像连接字符串一样非常敏感,不应该在版本控制中。问题是如何管理这些密钥而不将它们放在web.config(或任何其他版本控制的设置/配置文件)中。

Keith你应该使用服务器级别的秘密是正确的。如果您自己管理服务器,则可以使用他设置服务器的方法,但如果您使用服务,则需要按照指定的方式设置密钥。

Azure上的一个示例

How and where to define an environment variable on azure

Heroku上的另一个

https://devcenter.heroku.com/articles/config-vars

设置服务器级别的秘密只是第一步。一旦您将密钥从web.config中拉出,您就必须在本地设置它们。这是一篇关于使用本地machine.config设置它们的博客文章。

http://krow.tech/posts/Keeping-Your-Secret-Configs-Private