自定義服務器控件是擴展 ASP.NET Web 服務器控件的功能的一種方式。下文提供了針對自定義服務器控件的用戶和開發人員的基本安全准則。有關創建自定義服務器控件的更多信息,請參見開發自定義 ASP.NET 服務器控件。
IDE(如 Microsoft Visual Studio 2005)簡化了自定義控件的使用及開發。但是,無論使用哪一 IDE,下面列出的安全准則均適用。
有關 ASP.NET Web 應用程序安全性的常規信息,請參見 ASP.NET Web 應用程序安全性。
針對自定義服務器控件用戶的准則
您可以通過多種方式在 Web 應用程序中使用自定義服務器控件,例如,可以將源代碼文件直接放在 Web 應用程序的 App_Code 文件夾中,從全局程序集緩存使用控件,或者使用通過自動安裝程序(如 Visual Studio 內容安裝程序)安裝的社區組件。無論在何種情況下,都應采取防范措施以防止導入惡意代碼或對 IDE 和承載組件的服務器產生意外但有負面影響的代碼。
下面提供了自定義服務器控件的用戶應考慮的一些安全准則。此列表可能不夠全面,但可以從此著手進行調查:
不要使用不熟悉的代碼或不了解其安全隱患的代碼。對於社區組件,建議您閱讀可用的發行者信息並確定是否對組件進行了簽名。 有關更多信息,請參見 How to: Package Community Components to Use the Visual Studio Content Installer 和 如何:打包社區組件以使用 Visual Studio 內容安裝程序.
不要僅僅考慮控件的運行時安全性,還要考慮其設計時安全性。有關更多信息,請參見保證自定義控件設計器組件的安全。
如果可能,在強名稱程序集中使用自定義控件並選擇受信任的發行者。有關更多信息,請參見如何:確定程序集的完全限定名。
使用最少特權帳戶運行包括導入的控件的 ASP.NET Web 應用程序。有關使用具有最低權限的標識運行 ASP.NET 進程的更多信息,請參見配置 ASP.NET 進程標識。在諸如 Visual Studio 2005 或 Visual Web Developer 速成版這樣的 IDE 中,除非您需要執行管理任務,否則以普通用戶的身份而不要以管理員的身份運行應用程序。 有關更多信息,請參見 User Rights and Visual Studio 和 用戶權限和 Visual Studio.
查看承載自定義服務器控件的服務器上的操作系統安全性和 Windows 訪問控制列表 (ACL)。例如,應確保使用僅具有運行應用程序所需的最低權限的標識來運行 ASP.NET 進程,這樣便可將自定義服務器控件導致的安全漏洞對其他承載的應用程序的影響降至最低。有關更多信息,請參見配置 ASP.NET 進程標識。另外,查看自定義服務器控件的權限,並確保它們遵循文件和文件夾權限,ASP.NET Web 應用程序的標識必須具有該權限才能正常工作。有關更多信息,請參見 ASP.NET 必需的訪問控制列表 (ACL)。
使用代碼訪問安全性來限制 Web 應用程序(具有自定義服務器控件)可以訪問的資源和可以執行的特權操作。有關更多信息,請參見 ASP.NET 代碼訪問安全性。
使用 .NET Framework 配置工具 (Mscorcfg.msc) 在全局程序集緩存中管理和配置程序集並調整代碼訪問安全性策略。因為 Mscorcfg.msc 的用途是幫助高級管理員執行與配置應用程序相關的任務,因此與您的系統管理員合作以確定使用該工具是否符合您的情況。有關更多信息,請參見 .NET Framework 配置工具 (Mscorcfg.msc)。