簡體   English   中英

匿名訪問(IIS)和SQL Server

[英]Anonymous access (IIS) and SQL Server

我剛剛在雷德蒙德接受采訪,他們向我詢問了圍繞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。但是這可能發生在任何一種情況下。

有誰知道這里的最佳做法?

也許您可以使用ODBC為SQL Server連接創建DSN。 然后你的web.config只需要知道DSN。 這可能需要您使用System.Data.OleDb。 我從來沒有見過在ASP.NET中使用的DSN,但它曾經是Classic ASP的標准。 我從來沒有聽說過Active Directory用於管理ODBC。

在我工作的地方,我們有一個在特定域帳戶下運行的Windows服務。 該帳戶在SQL Server中設置為登錄,並且在其需要訪問的數據庫中具有匹配的用戶。 我們從來沒有遇到任何問題。

我認為最重要的是正確配置您的數據庫用戶(或角色),以便它只能訪問所需的內容。

我已經考慮使用AD以與您在第一段中描述的方式類似的方式管理SQL訪問。 (AD組 - > SQL Server登錄 - >數據庫用戶 - >數據庫對象)到目前為止,我能看到的唯一缺點是,如果用戶直接連接到數據庫,他們將繞過您在應用程序中的任何邏輯。 一個好處是,您知道域用戶正在訪問您的數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM