ASP.Net中保護自定義的服務器控件_.Net教程
推薦:asp.net 2.0中用GRIDVIEW插入新記錄看了下國外某巨牛的BLOG,大概是講asp.net 2.0中用GRIDVIEW插入新記錄的,方法比較特別,但效果一般,故將程序轉之,較為簡單,不做解釋等。 以下為引用
自定義服務器控件是擴展 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)。
針對自定義服務器控件開發人員的準則
作為自定義控件的開發人員,您應遵循 ASP.NET 應用程序頁和控件以及 .NET Framework 中安全性的常規最佳做法。在許多情況下,自定義服務器控件的用戶可能不了解所有實現的詳細信息或安全隱患。但是,您應該通過以下內容來計劃這一事項:遵循既定的安全約定,并清楚地指出組件正常工作所需的所有權限。您可以從 ASP.NET 網站安全性、.NET Framework 開發人員指南、安全性的基礎概念以及“Patterns and Practices Web site”(模式和做法網站) 中安全性主題來著手對常規安全性問題和解決方法進行調查。
設計和實現自定義 Web 服務器控件后,必須確定將組件提供給用戶的方法。有兩種常用的提供方法:作為程序集提供或作為社區組件提供。如果將組件作為程序集提供,您應對程序集進行簽名(也稱強名稱簽名)。簽名為程序集提供了唯一標識,其他軟件可以使用該標識來識別該程序集并顯式引用該程序集。同時,這一方法還可以提供其他好處,使用程序集編程中對這些好處進行了詳細介紹。
如果作為具有自動安裝過程的社區組件來提供組件,那么您應以加密方式對組件進行簽名。簽名可以通過創建對特定方唯一的數字簽名來幫助驗證數據是否發自特定方。其中,創建用于 Visual Studio 2005 的社區組件的一種方法是:使用 Visual Studio 內容安裝程序并創建可以對其進行簽名的 .vsi 文件。 有關更多信息,請參見 How to: Package Community Components to Use the Visual Studio Content Installer 和 如何:打包社區組件以使用 Visual Studio 內容安裝程序.
下面提供了在開發自定義服務器控制組件時應考慮的一些安全準則。此列表可能不夠全面,但可以從此著手進行調查:
與自定義服務器控件一同提供有關如何使用這些控件的說明,以及對這些控件正常運行所需的資源和權限的要求。
對組件進行數字簽名。如果將自定義控件打包為程序集,則使用強名稱對該程序集進行簽名。有關更多信息,請參見創建和使用具有強名稱的程序集。如果使用自動安裝程序(如 Visual Studio 內容安裝程序),您仍需要對組件進行簽名。 有關更多信息,請參見 How to: Package Community Components to Use the Visual Studio Content Installer 和 如何:打包社區組件以使用 Visual Studio 內容安裝程序.
遵循代碼中的異常管理的最佳做法。有關更多信息,請參見“Patterns and Practices Web site”(模式和做法網站) 上的“Chapter 10”(第 10 章)。
如果您希望頁開發人員將自定義控件添加到可視化設計器的工具箱,則將它們拖到設計圖面上,并在屬性瀏覽器中訪問其屬性和事件,而且,除了要考慮運行時安全性外,還要考慮設計時安全性。有關更多信息,請參見保證自定義控件設計器組件的安全。
了解對 Web 應用程序頁和控件的最高威脅,包括代碼注入、信息泄漏、會話劫持、身份欺騙、參數操作和網絡監聽。為此,應在部署前完成對組件的威脅建模分析。有關更多信息,請參見“Patterns and Practices Web site”(模式和做法網站) 上的“Threat Modeling Web Applications”(威脅建模 Web 應用程序) 主題。
分享:在ASP.NET程序中創建唯一序號如果在程序中需要創建全局唯一的序號,那么必須對創建序號的過程進行同步處理,防止多個并發訪問時出現相同序號的情況。下面列出幾種方法供大家參考。 利用數據庫的方法 后面的例子都基于MS
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-ASP.Net中保護自定義的服務器控件。