【问题标题】:asp.net web.config encryptionasp.net web.config 加密
【发布时间】:2009-03-24 06:03:48
【问题描述】:

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

【问题讨论】:

    标签: asp.net


    【解决方案1】:

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

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

    我能想到的两个原因:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      您可以在此处获取加密的详细信息:

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

      【讨论】:

        【解决方案3】:

        我相信如果有人不小心禁用了 ASP.Net,用户可以访问 .config 文件。

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

        【讨论】:

          【解决方案4】:

          风险取决于您保存在数据库中的数据的价值,以及如果该数据可能被泄露或删除会发生什么情况。

          【讨论】:

            【解决方案5】:

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

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

            加密 web.config 的敏感部分是纵深防御策略的一部分。您不知道 ASP.NET 中未发现的问题是否会绕过它对配置文件的保护,并突然将文件公开给全世界。通过不加密,您仅依靠 ASP.NET 不提供配置文件,单层防御可能在某些时候被破坏。

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-11-07
              • 1970-01-01
              • 2014-10-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-12-30
              相关资源
              最近更新 更多