2015-06-03 163 views
1

我正在考虑在asp.net应用程序中的web配置文件的安全性,从web配置文件通常包含连接字符串到应用程序数据库的角度来看,因此安全性很重要。asp.net网络配置安全

在asp.net应用程序,连接字符串可以从Web配置文件中使用检索:

ConfigurationManager.ConnectionStrings["connectionstring"] 

假设一个新的连接字符串的关键,是他们能够以某种方式发送请求服务器并得到响应,或者是否有某种安全措施可以防止这种情况发生。

如果他们能够这样做,他们如何做到这一点,以及可以做些什么来防止这种情况,例如加密连接字符串?

编辑:这不是问题Encrypting Connection String in web.config的重复,因为我的问题是询问是否有可能欺骗服务器提供此信息,如果有的话,我们如何防止它。提到的问题是如何加密数据,这是相关但不相同

+0

这个问题被问及在这里回答: http://stackoverflow.com/questions/1706613/encrypting-connection-string-in-web-config – WeeklyDad

回答

1

ASP.NET将永远不会通过HTTP提供web.config文件(或任何其他.config文件),所以答案是否定的,你不应该担心。

如果你仍然担心web.config文件的内容被暴露,请查看加密文件。

关于连接字符串,您也可以使用集成安全性,这样您甚至不必在连接字符串中公开数据库用户/传递。

https://msdn.microsoft.com/en-us/library/bsz5788z%28v=vs.140%29.aspx

0

考虑到您使用的是asp.net应用程序,用户应该无权访问web.config。

只要您不使“connectionstring”可替换或ConfigurationManager.ConnectionStrings [“connectionstring”]数据暴露,它应该没问题。

1

IIS默认配置为不为某些类型的文件,包含在此列表中的一个默认的类型与的.config扩展名的文件。然而,管理员可能会犯这样的错误:将web.config重命名为所服务的类型,例如,web.old,同时他们测试不同的配置设置,这意味着它实际上可以被服务。同样,有人可能会错误地将恶意的.config类型从未提供服务的IIS类型的筛选器中删除。

因此,推荐的做法是加密配置文件或部分。微软提供了一个这样的方法做这个作为标准,并有充分的说明,并在其他问题解释说,你链接到:

https://msdn.microsoft.com/en-us/library/zhhddkxy%28v=vs.140%29.aspx

服务类型的特定IIS实例的名单,可以发现在IIS7 +的IIS管理器中的“请求筛选”的“文件扩展名”选项卡中。