我怀疑在Git-hub中存储web.config文件,是否建议使用?
这不是安全漏洞吗?
不同环境下的web.config也会因环境不同而不同,因此如何保持不同版本的web.config是同一个repo和branch?
答案 0 :(得分:2)
是的,是的。
使用服务器级密钥存储敏感信息,如数据库连接字符串。
在IIS中,您可以使用ASPNET_REGIIS
- 它允许您添加IIS可以访问的秘密配置,但不能以纯文本形式保存Web文件。
在.NET核心中,有新的Microsoft.Extensions.SecretManager.Tools
可以做同样的事情。
对于不同的环境,您可以have multiple web.config
files,例如web.release.config
和web.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设置它们的博客文章。