我对在Git中存储web.config文件有疑问,推荐吗?
这不是安全漏洞吗?
另外,不同环境下的web.config也会不同,因此如何保持不同版本的web.config是相同的回购和分支?
发布于 2017-03-02 15:01:29
是的,是这样的。
使用服务器级机密来存储敏感信息,如DB连接字符串。
在IIS中,您可以使用ASPNET_REGIIS --它允许您添加IIS可以访问的秘密配置,但它不会以纯文本形式保存在web文件中。
在.NET核心中,有新的Microsoft.Extensions.SecretManager.Tools做同样的事情。
对于不同的环境,可以使用 files,例如web.release.config和web.debug.config。
发布于 2017-03-02 19:23:40
您的web.config文件本身并不是安全问题。您可能拥有的键,就像连接字符串一样,非常敏感,不应该在版本控制中。问题是如何管理这些密钥,而不将它们保存在web.config (或任何其他版本控制的设置/配置文件)中。
基思是正确的,你应该使用服务器级的秘密。如果您自己管理服务器,您可以使用他的方法来设置它们,但是如果您使用的是服务,那么您需要设置键,不管它们指定了什么。
关于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
https://stackoverflow.com/questions/42558809
复制相似问题