此頁沒有內(nèi)容條目
內(nèi)容

安全性和 Web 服務(wù)器

如果在 Internet Web 服務(wù)器上使用 RDSServer.DataFactory,請(qǐng)記住這會(huì)引起潛在的安全性問題。獲得有效數(shù)據(jù)源名稱 (DSN)、用戶標(biāo)識(shí)符和密碼信息的外部用戶可以編寫將任何查詢發(fā)送到該數(shù)據(jù)源的頁面。如果希望對(duì)數(shù)據(jù)源有更多的限制訪問,一種選擇是取消注冊(cè)并刪除 RDSServer.DataFactory 對(duì)象 (msadcf.dll),并且使用帶硬代碼查詢的自定義業(yè)務(wù)對(duì)象替代。下一節(jié)將說明怎么做。

客戶端模擬和安全性

如果 IIS Web 服務(wù)器的“密碼驗(yàn)證”屬性設(shè)置為“Windows NT 請(qǐng)求/響應(yīng)”,那么業(yè)務(wù)對(duì)象將在客戶端的安全性上下文中被調(diào)用。這是 RDS 1.5 中的新功能,允許通過 HTTP 進(jìn)行客戶端模擬。在這種模式下工作時(shí),對(duì) Web 服務(wù)器 (IIS) 的登錄不是匿名的,而是使用客戶端計(jì)算機(jī)運(yùn)行時(shí)使用的用戶 ID 和密碼。如果 ODBC DSN 設(shè)置為使用“委托的連接”,那么對(duì)諸如 SQL Server 的數(shù)據(jù)庫的訪問也發(fā)生在客戶端的安全性上下文中。但只有在數(shù)據(jù)庫與 IIS 在相同的計(jì)算機(jī)上時(shí)才可行。不能將客戶端身份證轉(zhuǎn)移到其他計(jì)算機(jī)。

例如,客戶 John Doe 要登錄到客戶計(jì)算機(jī),他的用戶標(biāo)識(shí)符=“JohnD”,密碼=“secret”。他運(yùn)行基于瀏覽器的應(yīng)用程序,該應(yīng)用程序需要訪問 RDSServer.DataFactory 對(duì)象并通過在運(yùn)行 IIS 的“MyServer”計(jì)算機(jī)上執(zhí)行 SQL 查詢來創(chuàng)建 ADOR.Recordset。MyServer 設(shè)置為使用“Windows NT 請(qǐng)求/響應(yīng)”用戶密碼驗(yàn)證,它的 ODBC DSN 已經(jīng)選定了“使用委托的連接”,同時(shí)服務(wù)器包含 SQL Server 數(shù)據(jù)源。當(dāng)在 Web 服務(wù)器上接收到請(qǐng)求時(shí),它要求客戶輸入用戶 ID 和密碼。因此登錄到 MyServer 上的請(qǐng)求來自“JohnD”/“Secret”而不是 IUSER_MyServer(“匿名密碼驗(yàn)證”打開時(shí)的默認(rèn)情況)。類似地,當(dāng)?shù)卿浀?SQL Server 時(shí)將使用“JohnD”/“Secret”。

因此,在沒有明確提示用戶輸入登錄到數(shù)據(jù)庫所需的用戶 ID 和密碼信息的情況下,IIS NT 請(qǐng)求/響應(yīng)驗(yàn)證模式允許創(chuàng)建 HTML 頁面。如果使用“IIS 基本驗(yàn)證”,也要求使用該模式。

密碼驗(yàn)證

RDS 可以與在任何下列三種密碼驗(yàn)證模式下運(yùn)行的 IIS Web 服務(wù)器通訊:匿名、基本或 NT 請(qǐng)求/響應(yīng)。這些設(shè)置定義 Web 服務(wù)器如何通過它控制訪問,例如請(qǐng)求客戶計(jì)算機(jī)在 NT Web 服務(wù)器上有明確的訪問特權(quán)。