保護建置在 .NET Framework 上的應用程式

本文說明保護以 Microsoft .NET Framework 為基礎的應用程式的重要考慮。

原始產品版本:.NET Framework
原始 KB 編號: 818014

摘要

本文是一系列文章的其中一篇,提供建置在 .NET Framework 上之應用程式的詳細資訊。

本系列文章包括下列文章:

依區域調整 .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 檔案保護來保護這些檔案。

參考資料

如需如何保護以 .NET Framework 為基礎之應用程式的詳細資訊,請造訪 Windows 10 部署的新功能。