本文討論保護基於 Microsoft .NET Framework 的應用程式的重要考慮。
如需在 .NET Framework 上部署建置的應用程式時的重要考慮,請參閱 在 .NET Framework 上建置的相關部署應用程式。
適用於: .NET Framework
原始 KB 編號: 818014
依區域調整 .NET Framework 安全性
.NET Framework 會將信任層級指派給受控元件。 這些指派部分是以元件執行所在的區域為基礎。 標準區域為 [我的計算機]、[近端內部網络]、[因特網]、[信任的網站] 和 [不受信任的網站]。 您可能必須增加或減少與上述任何區域相關聯的信任層級。 .NET Framework 包含調整這些設定的工具。
調整 .NET Framework 元件中的信任層級
.NET Framework 包含許多方法來判斷您應該授與組件的信任層級。 不過,您可以針對規則指定例外,以允許特定組件根據提供給 Common Language Runtime 的證據接收比通常更高的信任層級。 .NET Framework 提供特別針對此用途的精靈工具。
還原已自定義的原則層級
身為系統管理員,您可以完全控制您授與在各種信任層級上執行之元件的存取權。 如果您自定義信任層級,當您執行通常以標準信任層級執行的應用程式時,可能會遇到問題。 不過,您可以快速將原則層級還原至其預設設定。
評估授與元件的許可權
如果您在企業、計算機和用戶層級有安全設定原則,以及可自定義的信任等級,您可能會發現很難評估授與受控元件的許可權。 .NET Framework 組態工具包含簡單的方法來評估這些許可權。
稽核的安全性。NET 連線的應用程式
在升級、測試和疑難解答期間,生產系統的設定可能會以無意的方式變更。 例如,系統管理員可能會在判斷錯誤是否與訪問許可權相關時,將系統管理認證授與使用者。 如果系統管理員在完成疑難解答程序之後忘記撤銷這些提升許可權的認證,系統的完整性就會遭到入侵。
由於這種動作可能會隨著時間降低系統安全性,因此建議您定期進行稽核。 若要執行稽核,請記錄原始系統的主要層面,以建立基準量值。 將這些設定與一段時間的基準進行比較,以判斷開發的任何問題是否可能會大幅降低安全性層級。
設定已連接的 .NET 應用程式和 SQL Server,以用於網路通信的替代埠號碼
許多自動化工具會藉由查詢已知的埠號碼來識別可用的服務和弱點。 這些工具包括合法的安全性評估工具和惡意使用者可能使用的工具。
減少這類工具曝光的其中一種方式,就是變更應用程式所使用的埠號碼。 您可以將此方法套用至 。依賴後端 SQL Server 資料庫的 NET 連線應用程式。 如果伺服器和用戶端都已正確設定,這個方法會正常運作。
鎖定 ASP.NET Web 應用程式或 Web 服務
有許多方式可以增加 ASP.NET Web 應用程式和 Web 服務的安全性。 例如,您可以使用封包篩選、防火牆、限制性檔案許可權、URL 掃描因特網伺服器應用程式開發介面 (ISAPI) 篩選器,或謹慎控制的 SQL Server 許可權。 您應該檢閱這些不同的方法,以向 ASP.NET 應用程式提供深層安全保障。
設定NTFS檔案許可權以提高 ASP.NET 應用程式的安全性
新技術文件系統 (NTFS) 檔案許可權仍然是 Web 應用程式的重要安全性層。 ASP.NET 應用程式包含的檔案類型比先前的 Web 應用程式環境還多。 匿名用戶帳戶必須具有存取權的檔案清單並不明顯。
為建置在 .NET Framework 上的應用程式設定 SQL Server 安全性
根據預設,SQL Server 不會授與用戶查詢或更新資料庫的能力。 此規則也適用於 ASP.NET 應用程式和 ASPNET 用戶帳戶。 若要讓 ASP.NET 應用程式存取儲存在 SQL Server 資料庫中的數據,資料庫管理員必須將許可權授與 ASPNET 帳戶。
如需如何設定 SQL Server 以允許來自 ASP.NET 應用程式之查詢和更新的詳細資訊,請參閱 設定資料庫物件的許可權。
設定 URLScan 以增加 ASP.NET Web 應用程式的保護
當您在 Internet Information Services 5.0 (IIS 5.0) 伺服器上安裝 URLScan 時,此工具已設定為允許 ASP 3.0 應用程式執行。 不過,當您安裝 .NET Framework 時,URLScan 組態不會更新為包含新的 ASP.NET 檔類型。 如果您想要為 ASP.NET 應用程式新增 URLScan ISAPI 篩選器的安全性,請調整 URLScan 組態。
需要 ASP.NET Web 應用程式的驗證
許多 ASP.NET 應用程式不允許匿名存取。 需要驗證的 ASP.NET 應用程式可以使用下列三種方法之一:窗體驗證、.NET Passport 驗證和 Windows 驗證。 每個驗證方法都需要不同的組態技術。
限制特定使用者取得指定 Web 資源的存取權
ASP.NET 包含窗體驗證。 這個唯一方法會驗證使用者,而不需建立 Windows 帳戶。 ASP.NET 也包括為這些使用者授與或拒絕不同 Web 資源的存取權的能力。
如需如何控制每個使用者存取 Web 資源的詳細資訊,請造訪 限制特定使用者取得指定 Web 資源的存取權。
限制伺服器允許的 Web 服務通訊協定
根據預設,ASP.NET 支援三種方法,讓 Web 服務用戶端向 Web 服務發出要求:SOAP、HTTP GET 和 HTTP PUT。 不過,大部分的應用程式只需要其中一個方法。 建議您停用任何未使用的通訊協定,以減少受攻擊面。
不允許瀏覽器存取 。NET 連線的 Web 服務
ASP.NET Web 服務提供瀏覽器友好的介面,讓開發人員更容易建立 Web 服務用戶端。 這個易記的介面可讓任何可連線到 Web 服務的人員,檢視可用方法的完整詳細數據,以及任何必要參數。 此存取適用於只包含公開可用方法的公用 Web 服務。 不過,它可能會降低私人 Web 服務的安全性。
如需如何根據每個使用者控制 Web 資源存取的詳細資訊,請參閱 限制特定使用者取得指定 Web 資源的存取權。
使用 ASP.NET 來保護檔類型
ASP.NET 應用程式的結構會導致許多私人檔案與使用者要求的檔案一起儲存。 ASP.NET 會攔截檔案的要求並傳回錯誤,以保護這些檔案。 您可以使用組態設定,將此類型的保護延伸至任何文件類型。 如果您的應用程式包含應該保持私用的不尋常的檔類型,您可以使用 ASP.NET 檔案保護來保護這些檔案。