保護 RDS 應用程式
本主題提供 RDS 的安全性資訊。
重要
從 Windows 8 和 Windows Server 2012 開始,Windows 作業系統中不再包含 RDS 伺服器元件 (請參閱 Windows 8 和 Windows Server 2012 相容性逐步指南 (英文) 以取得詳細資料)。 未來的 Windows 版本將移除 RDS 用戶端元件。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 使用 RDS 的應用程式應該移轉至 WCF 資料服務。
Microsoft Internet Explorer 安全性問題
由於新增至 Microsoft Internet Explorer 的新安全性增強功能,某些 ADO 和 RDS 物件僅限於在「安全」模式環境中執行。 這需要您了解這些問題,包括不同的區域、安全性層級、限制性行為、不安全作業,以及自定義的安全性設定。
安全性和網頁伺服器
如果您在網際網路網頁伺服器上使用 RDSServer.DataFactory 物件,請記住這麼做會產生潛在的安全性風險。 取得有效資料來源名稱 (DSN)、使用者識別碼和密碼資訊的外部使用者,可以寫入頁面,以將任何查詢傳送至該資料來源。 如果您想要更受限地存取資料來源,其中一個選擇是取消註冊並刪除 RDSServer.DataFactory 物件 (msadcf.dll),並改為搭配硬式編碼查詢使用自訂商務物件。
如需使用 RDSServer.DataFactory 物件的安全性含意詳細資訊,請參閱 Microsoft 安全性網站上的 Microsoft 安全性佈告欄 MS99-025。
用戶端模擬和安全性
如果 IIS 網頁伺服器的密碼驗證屬性設定為 Windows NT 挑戰/回應驗證 (Windows NT 4.0) 或設定為整合式 Windows 驗證 (Windows 2000),則會在用戶端的安全性內容下叫用商務物件。 這是 RDS 1.5 中允許透過 HTTP 進行用戶端模擬的新功能。 當您在此模式中工作時,登入網頁伺服器 (IIS) 不是匿名的,而是使用用戶端電腦執行的使用者識別碼和密碼。 如果 ODBC DSN 設定為使用信任連線,則存取資料庫 (例如 SQL Server) 也會在用戶端的安全性內容下發生。 但只有在資料庫與 IIS 位於同一部電腦上時,才能運作;用戶端認證無法傳送至另一部計算機。
例如,使用 userid=“JohnD” 和 password=“<secret>” 的用戶端 John Doe 會登入用戶端電腦。 John Doe 會執行瀏覽器型應用程式,其需要存取 RDSServer.DataFactory 物件,以在執行 IIS 的 “MyServer” 計算機上執行 SQL 查詢來建立 Recordset 。 執行 Windows NT Server 4.0 的系統 MyServer 已設定為使用 Windows NT 挑戰/回應驗證,其 ODBC DSN 已選取 [使用信任連線],而且伺服器也包含 SQL Server 資料來源。 在網頁伺服器上收到要求時,會要求用戶端輸入使用者識別碼和密碼。 因此,要求會以來自 「JohnD」/“<secret>” 而不是 IUSER_MyServer 的身分登入 MyServer(這是匿名密碼驗證開啟時的預設值)。 同樣地,登入 SQL Server 時,會使用 “JohnD”/“<secret>”。
因此,IIS Windows NT 挑戰/回應驗證模式允許建立 HTML 頁面,而不需要明確提示使用者輸入登入資料庫所需的使用者識別碼和密碼資訊。 如果使用 IIS 基本驗證,則也需要這麼做。
密碼驗證
RDS 可以與在三種密碼驗證模式中執行的 IIS 網頁伺服器通訊:匿名、基本或 NT 挑戰/回應驗證 (Windows 2000 中稱為整合式 Windows 驗證)。 這些設定會定義網頁伺服器如何透過其控制存取權,例如要求用戶端電腦在 NT 網頁伺服器上具有明確的存取權限。