在web.config中包含db密码的潜在安全风险是什么

时间:2013-08-02 16:36:33

标签: c# asp.net security iis web

实体数据模型向导说:

此连接字符串似乎包含所需的敏感数据(例如,密码) 连接到数据库。在连接字符串中存储敏感数据可能存在安全风险。你想要 将此敏感数据包含在连接字符串中?

我已将db密码包含在许多实时项目中,风险有多大?

5 个答案:

答案 0 :(得分:3)

这一切都是为了尽量降低您的风险。让我们说攻击者找到了一种从服务器获取代码副本的方法,但不是在服务器上执行代码的方法:

  • 如果您在代码中存储了用户名和密码,则攻击者现在可以使用与您的代码相同的权限直接访问您的数据库。
  • 如果您使用集成身份验证,则攻击者仍无法从数据库中获取数据,因为他无法模拟用户执行集成身份验证。
  • 如果您使用正确的IIS encrption,您必须能够在服务器上执行代码(加密密钥与服务器绑定而不是代码)才能获取用户名和密码。因此,攻击者仍然无法访问数据库。

答案 1 :(得分:2)

您应该使用 aspnet_regiis 加密连接字符串。有关一些有用的信息,请查看此链接(How To Encrypt web.config)。

关于Web应用程序的其他方面,您需要确保设置尽可能少的权限,确保您研究所有Web应用程序漏洞以及如何防范这些漏洞。

答案 2 :(得分:2)

归结为您的网络服务器上的域和IIS的安全性如何? IIS和web.config位于Web应用程序的根目录下。如果您在域安全性方面遇到问题,并且人们可以访问您的inetpub或wwwroot目录及其子项,那么您的网站始终存在风险。如果您使用的是第三方提供商,例如go daddy或1和1,则它们相对安全。

如果您自己托管,则需要限制访问权限,尤其是目录列表权限。您希望尽可能地减轻权限。还有您用于Web应用程序的SQL帐户,限制数据库权限并尽可能减少访问。此外,不要使用通用帐户进行访问,并使每个Web应用程序都拥有自己的帐户。在域中,您希望确保在DMZ中采取必要的预防措施,以帮助保护Web服务器(如果它位于网络边缘)。

内部威胁比外部威胁更普遍。已经在您的域中具有提升权限的用户可能已经可以访问您的Web应用程序的根目录,而您甚至不知道它!密切关注您的代理帐户,IIS也用于Web应用程序和Web服务。

答案 3 :(得分:2)

只有您可以评估风险。它是您卧室中没有连接到互联网的测试服务器吗?风险不大。它是一家没有任何真正敏感信息的小公司的内部公司服务器吗?也许风险不大。

它是否连接到互联网?这很危险。如果你连接到互联网,这总是有风险的。为什么?因为互联网不是一个安全的地方。无论你有多大或多小,你都是目标。有一些自动机器人在网上漫游,寻找易受攻击的系统并自动接管它们。然后,他们用恶意软件感染系统以传播给您的用户。或者他们将您的凭据出售给其他黑客,以便他们可以将您的服务器用于垃圾邮件网络的命令和控制中心。或任何其他情况。

如果您在互联网上,则存在风险。期。因此,请始终认真对待安全问题。

答案 4 :(得分:2)

将用户名和密码替换为连接字符串中的集成安全性。 确保使用连接的进程与已在SQL服务器上注册的用户执行(足够的)特权以执行其任务。这应该可以最大限度地降低系统受到危害的风险。