【问题标题】:Encrypting web.config using Protected Configuration pointless?使用受保护的配置加密 web.config 毫无意义?
【发布时间】:2009-03-25 17:48:20
【问题描述】:

我一定是错过了什么……

所以我正在寻找在 web.config 中加密数据库连接字符串和 sql 会话状态连接信息的最佳方法。我很快在 msdn 上找到了一个演练,解释了使用受保护的配置来加密 web.config 的部分内容: MSDN walkthrough on using Protected Configuration

所以我的想法很好,有一种机制可以做到这一点,而且看起来很简单。我到了演练的结尾,他们提供了一个可用于解密所有连接字符串的 aspx 页面的源代码!!!

有什么意义???我没有在此 Web 服务器上运行任何 ftp 服务,任何人查看 web.config 的唯一方法是他们是否有权访问发布网站的文件系统。如果他们有,那么他们所要做的就是使用提供的代码来解密。

我错过了什么?有没有更好的方法来加密这些?如果我推出自定义解决方案,它将适用于 sql 会话状态部分吗? (不要相信 cane 从 web.config 中删除)

【问题讨论】:

    标签: .net asp.net security encryption web-config


    【解决方案1】:

    假设您使用的是 DPAPI 提供程序,您至少需要对文件系统进行写访问才能对其进行解密。解密方法包括:

    • 将包含解密代码的 aspx 页面复制到服务器并导航到它
    • 登录服务器并运行应用程序进行解密。

    但它可以防止未经授权的用户对文件系统或文件系统的备份具有读取权限。

    通常您会设置生产服务器,以便只有授权的管理员才能登录服务器或写入其文件系统。

    出于支持目的,开发人员可能具有远程读取访问权限,并且无法远程解密配置文件。

    使用标准库很容易加密/解密:困难的部分是确保只有经过授权的人才能访问密钥。

    如果您使用的是 DPAPI,您实际上是在将密钥管理委托给 Windows 安全性。如果您使用其他提供商(例如 RSA),则需要将密钥存储在某处,并保护其免受未经授权的访问,例如使用 ACL。

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 2012-10-01
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 2013-11-16
      相关资源
      最近更新 更多