我剛剛在雷德蒙德接受採訪,他們問我一些圍繞asp.net的基於安全性的問題。他們提出的問題之一是配置安全的Intranet應用程序以使用受約束的委派來訪問SQL Server。在這種情況下,AD用戶帳戶被委派訪問SQL Server。當然,整個目的是a)不在Web服務器(web.config)的任何位置存儲任何用戶名/密碼,並且b)提供可以在Active Directory中管理的抽象安全模型。匿名訪問(IIS)和SQL服務器
這讓我想起了這些年來我是如何爲匿名訪問配置我的網站的。通常,我將使用默認匿名帳戶運行我的IIS網站,並將連接字符串存儲在web.config中(加密,有時以明文形式)。當然,這需要您的SQL Server以混合模式運行。所以我的問題是,如果我們根本沒有在web.config中存儲連接字符串,並且只爲SQL Server中的db_datareader訪問創建了一個唯一的匿名域帳戶,該怎麼辦?有沒有任何理由這麼做是不好的主意?
我試圖想到所有的情況下,這將是一個壞主意,唯一我能想到的是一個「黑客」妥協的Web服務器上的代碼,然後以某種方式訪問您的SQL Server ...但這可能發生在任何一種情況下。
有沒有人知道這裏的最佳做法?
在第一段中我提到了約束授權。這將需要一個域帳戶,並假冒一個用戶的訪問權限「僅限於」SQL Server,而不是農場中的其他任何內容。在這種情況下,用戶將無法直接訪問SQL,只能通過應用程序訪問。 – 2009-01-30 18:33:18