2011-09-07 44 views
4

我知道有可能加密存储在web.config中的连接字符串,
而且我知道你永远不会太安全,但是由于无法查看或下载web.config,为什么需要它?以何种方式更安全?加密Web.Config中的连接字符串 - 为什么?

[编辑:]我没有使用共享托管服务器。

+0

更正:web.config **应该不可见。存在暴露此文件内容的许多安全漏洞(并在野外看到)。这是关于采取“分层”的安全方法。 – Cheekysoft

+0

你能提供一个这样的漏洞\ KB的链接吗? – sternr

+2

尽管已经有很多,但您不仅仅想考虑IIS/windows中可能已被修补的问题,安全问题可以在很多方面无意中引入。你的ftp服务器可能有一个允许任意代码执行的缓冲区溢出,你可能在你的web应用程序中意外地写入了一个本地文件包含漏洞,你的图像上传代码可能不会验证文件是否有嵌入脚本并允许它被执行,可能对你的svn repo有一个弱密码,或者你甚至可以使用一个编辑器来编辑你的web.config文件时保存一个.bak文件。 – Cheekysoft

回答

1

如果您将您的网站部署到客户的Web服务器并希望保持凭据的秘密。

+0

但是,鉴于我正在使用我自己的专用服务器? – sternr

+0

然后,如果通过某种类型的漏洞(无论是在你的软件,在IIS中,在Windows中,还是在其他一些应用程序中),任何人都可以获得web.config,但他们仍然没有任何东西。 – CodeCaster

+0

我不能说我转换了,但至少我明白理性,谢谢! – sternr

1

如果有人闯入您的服务器,他无法看到所有敏感信息,无需进一步工作。如果您将应用程序部署到某些“云”服务,则您的凭证不会暴露给维护该服务的所有人。

编辑:也有一些管理员或有权访问服务器的用户将无法读取明文凭证。

1

我想你说“你永远不能太安全”

是web.config中无法查看或下载的事实是不能保证回答你自己的问题,从您的组织内部的攻击不会发生。有正确访问权限的人可能会破坏安全性,并在明显可见的情况下获取数据。正如你所说的,通过Http攻击不太可能得到这个文件,其他具有正确访问权限的人仍然可以通过其他方式访问,例如远程文件访问,远程桌面等等。加密+分配正确的访问/授权使得更加困难攻击者试图破坏你的系统。

在安全方面,您只需要偏执狂一些,并采取您认为可能的一切措施,以使数据尽可能安全,这是您的工作让攻击者很难获取任何信息。我不认为有这样的事情是100%安全的。从某种意义上说,你总是容易受到安全威胁,我们所能做的就是尽量减少它。

相关问题