Asp.net web.config中加密连接字符串的意义是什么?

Asp.net web.config中加密连接字符串的意义是什么?,asp.net,Asp.net,为什么要在web.config中加密连接字符串?如果我没有弄错,IIS不提供web.config,如果有人能够侵入您的服务器获取web.config,那么它已经是GG了。是否有任何理由加密web.config中的任何内容?这不是没有必要吗?您不能排除web框受损的可能性-这并不意味着您的db也会受损。 另外,您不希望web管理员知道数据库的密码 您需要记住,浏览器无法获取配置文件,因为扩展名.config在IIS元数据的限制列表中。可能会以其他方式从服务器获取这些文件,或者某些配置错误的问题可能

为什么要在web.config中加密连接字符串?如果我没有弄错,IIS不提供web.config,如果有人能够侵入您的服务器获取web.config,那么它已经是GG了。是否有任何理由加密web.config中的任何内容?这不是没有必要吗?

您不能排除web框受损的可能性-这并不意味着您的db也会受损。 另外,您不希望web管理员知道数据库的密码


您需要记住,浏览器无法获取配置文件,因为扩展名
.config
在IIS元数据的限制列表中。可能会以其他方式从服务器获取这些文件,或者某些配置错误的问题可能会允许下载这些文件。

我认为这更像是组织问题/法规遵从性问题

例如,您可能有一个“生产”团队/提升职位,可以访问“实时”数据,而开发人员可能通过应用程序进行只读访问,您希望他们没有用户名/密码-因此,加密连接字符串

或者,如果不满/轻率的开发人员通过电子邮件将web.config发送给mates/home/hotmail,这意味着所有人都无法获得访问数据库的用户名/密码


归根结底,这只是另一层安全保护——当你锁上前门的时候,为什么还要有一扇通往你驱动器的大门?(如果你有一个带闸门的驱动器!)

你可能不希望团队中的开发人员看到直接访问数据库的用户/密码。特别是在大型团队中,在web服务器上工作的人可能不是在数据服务器上工作的人。我经常看到开发人员在他们的应用程序中有一个不安全的文件下载ashx(易受规范表示攻击的攻击)允许下载配置文件。例如:
download.ashx?file=..\..\..\web.config
可能重复我想这在较大的团队中是有意义的,但在较小的团队中会感到不便。尤其是以前的团队使用他们自己的加密方法,而不是标准的MS方法。