【发布时间】:2009-01-30 16:49:28
【问题描述】:
我刚刚在雷德蒙德接受了一次采访,他们问了我很多关于 asp.net 的安全问题。他们提出的问题之一是关于配置安全的 Intranet 应用程序以使用约束委派访问 SQL Server。在这种情况下,AD 用户帐户被委派访问 SQL Server。整个目的当然是 a) 不在 Web 服务器 (web.config) 的任何位置存储任何用户名/密码,并且 b) 提供可以在 Active Directory 中管理的抽象安全模型。
这让我开始思考这些年来我是如何将我的网站配置为匿名访问的。通常我会使用默认匿名帐户运行我的 IIS 网站,并将连接字符串存储在 web.config 中(加密,有时以明文形式)。当然,这需要您的 SQL Server 以混合模式运行。所以我的问题是,如果我们根本不将连接字符串存储在 web.config 中,而只是为在 SQL Server 中具有 db_datareader 访问权限的特定网站创建了一个唯一的匿名域帐户,该怎么办?有什么理由说明这样做是个坏主意吗?
我已经尝试过所有情况下这是一个坏主意,而我唯一能想到的是“黑客”破坏了 Web 服务器上的代码,然后以某种方式访问了您的 SQL服务器...但这可能发生在任何一种情况下。
有人知道这里的最佳做法吗?
【问题讨论】: