【问题标题】:What is the point of encrypting web.config if user can just decrypt it?如果用户可以解密它,加密 web.config 有什么意义?
【发布时间】:2010-12-14 00:55:39
【问题描述】:

喂,有些供应商告诉我的老板,不加密 web.config 是一个很大的安全漏洞。这对我来说听起来像是铺位。我的意思是,如果有人破坏了服务器,我们不就完蛋了吗?

【问题讨论】:

    标签: asp.net encryption web-config


    【解决方案1】:

    就像@Joelt 建议的那样,ASP.NET 最近出现了一个安全问题,允许人们访问根网络等中的文件。现在,这个问题可能已经存在很长时间了。或者,现在可能存在一个秘密缺陷,除了一些 leet punks 之外没有人知道......这意味着我们现在都很脆弱。我的意思是,直到 ASP.NET 团队(以及在他们之前一两个星期的安全人员)宣布之前的缺陷......它在野外多久了?有多少人利用了它?

    所以 - 这是一般的想法。如果由于某种原因存在缺陷 - 人们可以远程访问文件 - 包括 web.config - 那么您的数据可能是已知的。

    现在 - 关键是这个。所以 .. 有人可能会知道我的数据库名称、数据库 ip addy 和数据库密码 .. 对吗?但他们需要访问我的内部数据库......祝你好运。但是,我的 web.config 中可能有我的 Twitter 用户名密码? (叮!灯刚刚亮了)。我的第 3 方 api 用户名/密码。等等

    这才是真正的安全问题所在,IMO。

    如果你知道我公司的 Twitter 用户名/密码,然后开始破坏我们的 Twitter 帐户,我会讨厌它。

    【讨论】:

    • +1 用于提及其他类型的敏感数据,而不仅仅是连接字符串。
    【解决方案2】:

    加密并不意味着您受到保护。解密所需的私钥存储在服务器上,因此如果您的服务器遭到入侵,您的 web.config 可以被解密。

    我们只加密 web.config 的连接字符串部分。它有助于防止其他窥探者轻松访问我们的连接字符串,尤其是在开发环境中(这通常比您的生产环境安全得多)。

    加密只是分层安全性的一小部分。它绝不是保护您敏感信息的终极解决方案。

    【讨论】:

      【解决方案3】:

      最近在 ASP.net 中发布了一个安全漏洞,它允许远程用户访问 Web 根目录中的任何文件,包括 web.config,而无需访问整个服务器。此外,web.config 中可能存在登录信息,允许入侵一台服务器以入侵另一台服务器。

      【讨论】:

      • 好的,所以有人远程查看 Web 配置,获取数据库凭据。那么他们需要某种漏洞才能进入我们的网络,对吗?
      • 如果我知道你的连接字符串,我可以远程使用 SQL Server 对你的数据库做任何我想做的事情。
      • 如果您在 asp.net 中使用基本会员/角色/用户提供程序,它允许您在 web.config 中以明文形式存储用户名和密码。我们总是可以争论是否应该将这样做的 ppl 直接发送到精神病院,但这并不能改变您可以和 ppl 在他们的 web.config 中具有感知数据的事实。
      • @jonathan 包括任何将他们的 SQL 服务器远程(在互联网上)暴露给需要被送往精神病院的人的名单:P
      • @Pauli:我不确定我是否跟随。 SQL Server 连接到 Web 是正常的。将服务器放在与网站不同的机器上可以提供更好的性能。如果不在网络上,用户如何处理数据?
      【解决方案4】:

      有点。就我而言,我使用共享主机帐户进行托管。所以很多人都可以访问我的帐户和存储在那里的文件。

      就我个人而言,我并不太担心。但是,如果有人愿意,他们可以访问该信息。即使您拥有服务器,如果它是一家公司,那么可能会有很多人可以访问它。

      对于关键数据,加密是有意义的。

      【讨论】:

      • 我有点困惑,如果有人看到你的加密配置文件,难道他们也不能只看到包含代码的文件并弄清楚你是如何加密的吗?
      • 只需要随便看一眼未加密的密码即可。如果加密,他们需要查看加密数据、使用的任何密码/密钥、需要知道使用的算法,并且需要在计算机上运行算法。而且所有的数据都很难记住。我并不是说没有人可以解密数据,只是说如果可以随便完成的话,可能性更大。
      • @Jonathan Wood:你为什么说And even if you own the server, if it's a company then there could be a lot of people who have access to it.你到底是什么意思?
      • @Lorenzo:我不确定混淆点在哪里,但我是说如果您有一家有员工的公司,并且您在公司计算机上托管您的网站,那么有时可能当员工看到您不希望访问该信息的 web.config 时。例如,没有直接参与开发的人。
      • @Jonathan Wood:我的困惑与“即使您拥有服务器”有关,但现在我意识到您指的是与我无关的特定场景。谢谢你的解释
      猜你喜欢
      • 2018-07-09
      • 2014-09-05
      • 2010-11-12
      • 2015-05-06
      • 2015-04-16
      • 2020-08-04
      • 2014-10-26
      • 2012-06-04
      相关资源
      最近更新 更多