保护 RDS 应用程序
本主题提供 RDS 的安全信息。
重要
从 Windows 8 和 Windows Server 2012 开始,RDS 服务器组件不再包含在 Windows 操作系统中(有关详细信息,请参阅 Windows 8 和 Windows Server 2012 兼容性指南)。 RDS 客户端组件将在将来的 Windows 版本中删除。 避免在新开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 使用 RDS 的应用程序应迁移到 WCF 数据服务。
Microsoft Internet Explorer 安全问题
将新的安全增强功能添加到 internet Explorer Microsoft后,某些 ADO 和 RDS 对象仅限于在“安全”模式环境中运行。 这要求你了解这些问题,包括不同的区域、安全级别、限制性行为、不安全操作和自定义的安全设置。
安全性和 Web 服务器
如果在 Internet Web 服务器上使用 RDSServer.DataFactory 对象,请记住这样做会产生潜在的安全风险。 获取有效数据源名称(DSN)、用户 ID 和密码信息的外部用户可以写入页面,以便向该数据源发送任何查询。 如果想要对数据源进行更受限的访问,一个选项是注销和删除 RDSServer.DataFactory 对象(msadcf.dll),而是将自定义业务对象与硬编码的查询一起使用。
有关使用 RDSServer.DataFactory 对象的安全影响的详细信息,请参阅Microsoft安全网站上的Microsoft安全公告 MS99-025。
客户端伪装和安全性
如果 IIS Web 服务器的 密码身份验证 属性设置为 Windows NT 质询/响应身份验证(适用于 Windows NT 4.0)或集成 Windows 身份验证(适用于 Windows 2000),则会在客户端的安全上下文下调用业务对象。 这是 RDS 1.5 中允许通过 HTTP 进行客户端模拟的新功能。 在此模式下工作时,登录到 Web 服务器(IIS)不是匿名的,而是使用客户端计算机正在运行的用户 ID 和密码。 如果 ODBC DSN 设置为使用受信任的连接,则对数据库(如 SQL Server)的访问也会在客户端的安全上下文下发生。 但是,仅当数据库与 IIS 位于同一台计算机上时才有效;客户端凭据不能传递到另一台计算机。
例如,一位客户端用户 John Doe,其的 userid=“JohnD”和 password=“<机密>”,已经登录到了客户端计算机。 John Doe 运行基于浏览器的应用程序,该应用程序需要访问 RDSServer.DataFactory 对象,以便通过在运行 IIS 的“MyServer”计算机上执行 SQL 查询来创建 Recordset。 运行 Windows NT Server 4.0 的系统 MyServer 设置为使用 Windows NT 质询/响应身份验证,其 ODBC DSN 已选中“使用受信任的连接”,服务器还包含 SQL Server 数据源。 在 Web 服务器上收到请求时,它会向客户端请求用户 ID 和密码。 因此,请求被记录在 MyServer 上,来源为“JohnD”/“<机密>”而不是 IUSER_MyServer(当启用匿名密码身份验证时的默认值)。 同样,在登录到 SQL Server 时,使用“JohnD”/“<机密>”。
因此,IIS Windows NT 质询/响应身份验证模式允许创建 HTML 页面,而无需显式提示用户登录数据库所需的用户 ID 和密码信息。 如果使用 IIS 基本身份验证,则还需要这样做。
密码身份验证
RDS 可以与在以下三种密码身份验证模式中的任何一种中运行的 IIS Web 服务器通信:匿名、基本或 NT 质询/响应身份验证(称为 Windows 2000 中的集成 Windows 身份验证)。 这些设置定义 Web 服务器如何控制通过其访问,例如要求客户端计算机在 NT Web 服务器上具有显式访问权限。