匿名访问(IIS)和SQL Server

Rya*_*ook 9 asp.net security iis

我刚刚在雷德蒙德接受采访,他们向我询问了围绕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 Server.但是这可能发生在任何一种情况下.

有谁知道这里的最佳做法?

PJ8*_*PJ8 1

在我工作的地方,我们有一个在特定域帐户下运行的 Windows 服务。该帐户在 SQL Server 中设置为登录名,并且在需要访问的数据库中有一个匹配的用户。我们在这方面从来没有遇到过任何问题。

我认为最重要的是正确配置您的数据库用户(或角色),以便它只能访问它需要的内容。

我考虑过使用 AD 来管理 SQL 访问,方式与您在第一段中描述的方式类似。(AD 组 -> SQL Server 登录 -> 数据库用户 -> 数据库对象)到目前为止,我看到的唯一缺点是,如果用户直接连接到数据库,他们将绕过应用程序中的任何逻辑。好处之一是,您知道哪些域用户正在访问您的数据库。