asp.net web.config加密

时间:2009-03-24 06:03:48

标签: asp.net

为什么在部署之前加密web.config中的敏感数据被认为是正确的做法?如果网站是在现场托管的,那么如何加密这些数据会有风险呢?

5 个答案:

答案 0 :(得分:2)

当然,在大多数情况下,黑客很难获得对web.config文件的访问权,因为asp.net对它进行了不同的处理,并且不允许它直接读取。

然而 您需要为面向公众的Web服务器加密web.config有很多原因。

我能想到的两个原因:

1)黑客总是以某种方式设法以某种方式读取您的web.config。如果黑客设法破坏您的Web服务器,那么加密您的web.config至少会减慢速度,如果不是阻止黑客获取对您数据库的访问权。

在许多托管环境中,数据库将驻留在完全不同的物理机器上。此外,黑客倾向于发现数据库比网站更有用,因为它可能包含敏感信息,如信用卡号,地址,出生日期,密码等等。

2)如果您有多个人对您的网络服务器/服务器场进行维护并且您不希望某些人能够访问您的数据库,但您仍希望他们能够访问您到您的Web服务器,以便他们可以执行维护任务。这样,他们就不会在web.config中以纯文本形式看到数据库的登录凭据。

答案 1 :(得分:2)

我们的web.config包含连接字符串和服务器用户ID和密码等信息。

我们加密配置文件以防止此类数据。

您可以在此处获取有关enrypting的详细信息:

http://msdn2.microsoft.com/en-us/library/ms998283.aspx

答案 2 :(得分:0)

我相信如果有人意外禁用ASP.Net用户可以访问.config文件。

我已经看到它发生在PHP包含。有人用apache设置搞砸了,突然所有php源代码都可见,包括连接字符串。

答案 3 :(得分:0)

风险取决于您保存在数据库中的数据的价值,以及如果数据可能受到损害或删除会发生什么。

答案 4 :(得分:0)

在“旧的”ASP时代,发现了一个漏洞,当您将:: $ DATA附加到URL时,您可以查看ASP页面的源代码。

在ASP.NET 1.0中,可以使用特制URL绕过表单身份验证。

加密web.config的敏感部分是深度防御策略的一部分。您不知道ASP.NET中未发现的问题是否会绕过它对配置文件的保护,并突然暴露该文件以供全世界查看。通过不加密,您只依靠ASP.NET来不提供配置文件,这可能会在某些时候被破坏。

作为一个额外的奖励,你可以保护自己不要做一些愚蠢的事情,比如将你的web.config备份到web.config.bak--它将不再受到保护以免下载,并且是一些安全工具在扫描网页时检查的文件名站点。

相关问题