安全性和 Web 服务器

目录

如果在 Internet Web 服务器上使用 RDSServer.DataFactory,请记住这会引起潜在的安全性问题。获得有效数据源名称 (DSN)、用户标识符和密码信息的外部用户可以编写将任何查询发送到该数据源的页面。如果希望对数据源有更多的限制访问,一种选择是取消注册并删除 RDSServer.DataFactory 对象 (msadcf.dll),并且使用带硬代码查询的自定义业务对象替代。下一节将说明怎么做。

客户端模拟和安全性

如果 IIS Web 服务器的“密码验证”属性设置为“Windows NT 请求/响应”,那么业务对象将在客户端的安全性上下文中被调用。这是 RDS 1.5 中的新功能,允许通过 HTTP 进行客户端模拟。在这种模式下工作时,对 Web 服务器 (IIS) 的登录不是匿名的,而是使用客户端计算机运行时使用的用户 ID 和密码。如果 ODBC DSN 设置为使用“委托的连接”,那么对诸如 SQL Server 的数据库的访问也发生在客户端的安全性上下文中。但只有在数据库与 IIS 在相同的计算机上时才可行。不能将客户端身份证转移到其他计算机。

例如,客户 John Doe 要登录到客户计算机,他的用户标识符=“JohnD”,密码=“secret”。他运行基于浏览器的应用程序,该应用程序需要访问 RDSServer.DataFactory 对象并通过在运行 IIS 的“MyServer”计算机上执行 SQL 查询来创建 ADOR.Recordset。MyServer 设置为使用“Windows NT 请求/响应”用户密码验证,它的 ODBC DSN 已经选定了“使用委托的连接”,同时服务器包含 SQL Server 数据源。当在 Web 服务器上接收到请求时,它要求客户输入用户 ID 和密码。因此登录到 MyServer 上的请求来自“JohnD”/“Secret”而不是 IUSER_MyServer(“匿名密码验证”打开时的默认情况)。类似地,当登录到 SQL Server 时将使用“JohnD”/“Secret”。

因此,在没有明确提示用户输入登录到数据库所需的用户 ID 和密码信息的情况下,IIS NT 请求/响应验证模式允许创建 HTML 页面。如果使用“IIS 基本验证”,也要求使用该模式。

密码验证

RDS 可以与在任何下列三种密码验证模式下运行的 IIS Web 服务器通讯:匿名、基本或 NT 请求/响应。这些设置定义 Web 服务器如何通过它控制访问,例如请求客户计算机在 NT Web 服务器上有明确的访问特权。

www.51windows.Net