Web安全解决方案
-  什么是?.NET Framework?安全性? .NET Framework 提供了用戶和代碼安全模型,允許對用戶和代碼可以執行的操作進行限制。要對基于角色的安全性和代碼訪問安全性進行編程,可以從?System.Security?命名空間中使用類型。.NET Framework 還提供了System.Security.Cryptography?命名空間,公開對稱和不對稱的加密與解密、散列、隨機數生成、數字簽名支持等。 要理解 .NET Framework 安全性基本設置,請參閱“.NET 安全基礎”單元。 
-  如何編寫安全托管代碼 用強名稱對程序集進行數字簽名,使它們不能隨意改動。同時,在結合使用強名稱的程序集和 ASP.NET 時,需要注意強名稱的問題。通過遵守堅固的面向對象設計原理,減小程序集受攻擊面,然后使用代碼訪問安全性,進一步限制哪些代碼可以調用您的代碼。使用結構化的異常處理方法防止敏感信息蔓延到當前信任邊界之外,并開發更加可靠的代碼。避免常規問題,特別是輸入文件名和 URL 的問題。 有關如何提高托管代碼安全性的信息,請參閱“構建安全的程序集”單元。有關如何有效使用代碼訪問安全性,以進一步提高安全性的詳細信息,請參閱“代碼訪問安全實踐”單元。有關執行托管代碼復查的信息,請參閱“Security Code Review”單元。 
-  如何安全地處理異常 不要顯示內部系統或應用程序的詳細信息,如堆棧跟蹤、SQL 語句片斷等。確保這類信息不被允許蔓延到最終用戶或當前信任邊界以外。 在異常事件中安全地失敗,確保應用程序拒絕訪問,而且沒有停留在不安全的狀態下。不記錄敏感或私有數據,如密碼,以免造成危害。在記錄或報告異常時,如果用戶的輸入包括在異常消息中,對其進行驗證或清理。例如,如果返回一個 HTML 錯誤消息,您應該對輸出進行編碼,以避免腳本注入。 有關更多信息,請參閱“構建安全的程序集”和“構建安全的 ASP.NET 頁和控件”兩單元的“Exception Management”部分。 
-  如何執行托管代碼的安全復查 使用分析工具(如 FxCop)分析二進制程序集,確保它們符合 .NETFramework 設計準則。修復分析工具識別出的所有安全缺陷。使用文本搜索工具掃描硬編碼機密(如密碼)的源代碼庫。之后,復查具體的應用程序元素,包括 Web 頁面和控件、數據訪問代碼、Web 服務、服務組件等。要特別注意 SQL 注入和跨站點腳本編寫缺陷。 還要對使用敏感的代碼訪問安全技術進行復查,如鏈接聲明和斷言。有關更多信息,請參閱“Code Review”單元。 
-  如何保證開發人員工作站的安全性 您可以使用一套方法保證工作站的安全性。保證您的帳戶、協議、端口、服務、共享、文件與目錄和注冊表的安全。最重要的是,保持您的工作站具有當前最新的補丁與更新。如果您在 Microsoft Windows_ XP 或 Windows 2000 上運行 Internet 信息服務 (IIS),則運行 IISLockdown。IISLockdown 應用安全的 IIS 配置,并安裝 URLScan Internet 安全應用程序編程接口 (ISAPI) 篩選器,該篩選器用于檢測和拒絕潛在的惡意 HTTP 請求。例如,您可能需要修改默認 URLScan 的配置,這樣您就可以在開發和測試期間調試 Web 應用程序。 有關更多信息,請參閱本指南的“如何做”部分的“如何保證開發人員工作站的安全”。 
-  如何結合使用代碼訪問安全性和?ASP.NET 使用 .NET Framework 版本 1.1,您可以在 Machine.config 或 Web.config 中設置 ASP.NET 的信任級。這些信任級使用代碼訪問安全性,以限制 ASP.NET 應用程序可以訪問的資源,例如文件系統、注冊表、網絡、數據庫等。此外,它們還提供了應用程序隔離。 有關從 ASP.NET 使用代碼訪問安全性、開發部分信任的 Web 應用程序和沙箱化特權代碼的詳細信息,請參閱“在 ASP.NET 中使用代碼訪問安全”單元。 有關代碼訪問安全性的基礎的詳細信息,請參閱“代碼訪問安全實踐”單元。 有關在開發托管代碼時需要考慮的代碼訪問安全性問題的詳細信息,請參閱“構建安全的服務組件”、“構建安全的 Web 服務”、“構建安全的遠程組件”和“構建安全的數據訪問”等單元的“代碼訪問安全注意事項”部分。 
-  如何編寫具有最低權限的代碼 可以限制代碼能夠執行的操作,這與運行該代碼所使用的帳戶無關。通過配置策略或如何編寫代碼,您可以使用代碼訪問安全性來限制代碼允許被訪問的資源和操作。如果代碼不需要訪問某種資源或執行某種敏感操作(如調用非托管代碼),可以使用聲明性安全屬性來確保代碼不會被管理員授予這種權限。 有關更多信息,請參閱 “代碼訪問安全實踐”單元。 
-  如何限制文件?I/O 可以使用代碼訪問安全性來限制程序集訪問文件系統區域和執行 I/O 的能力。例如,可以限制某個 Web 應用程序,使它只能在它的虛擬目錄層次結構下執行文件 I/O。您也可以將文件 I/O 限制在特定的目錄上。這可以通過編程或配置代碼訪問安全策略來完成。 有關更多信息,請參閱“代碼訪問安全實踐”單元的“文件 I/O”和“在 ASP.NET 中使用代碼訪問安全”單元的“媒體信任”。有關配置代碼訪問安全策略的詳細信息,請參閱“如何使用 CAS 策略約束程序集”。 
-  如何防止?SQL?注入 使用數據訪問的參數化存儲過程。使用參數要確保輸入值的類型和長度都得到檢查。參數也被視作安全文本值和數據庫內的不可執行代碼。如果不能使用存儲過程,就使用帶有參數的 SQL 語句。不要通過連接 SQL 命令和輸入值來構建 SQL 語句。還要確保應用程序使用具有最低權限的數據庫登錄,以限制它在數據庫中的功能。 有關 SQL 注入的詳細信息和進一步對策,請參閱“構建安全的數據訪問”單元的“SQL 注入”。 
-  如何防止跨站點腳本編寫 對輸入類型、長度、格式和范圍進行驗證,并對輸出進行編碼。如果輸出包括輸入(包括 Web 輸入),則對輸出進行編碼。例如,對窗體字段、查詢字符串參數、cookie 等進行編碼,以及對從無法假定其數據是安全的數據庫(特別是共享數據庫)中讀取的輸入進行編碼。對需要以 HTML 返回客戶端的自由格式輸入字段,對輸出進行編碼,然后選擇性地清除在許可元素(如用于格式化的 <b> 或 標記)上的編碼。 有關更多信息,請參閱“構建 ASP.NET 頁和控件”單元的“跨站點腳本編寫”。 
-  如何管理機密 最好尋找避免存儲機密的替代方法。如果必須存儲它們,則不要在源代碼或配置文件中以明文的方式存儲。使用數據保護應用程序編程接口 (DPAPI) 加密機密,以避免關鍵的管理問題。 有關更多信息,請參閱“構建安全的 ASP.NET 頁和控件”單元的“敏感數據”、“構建安全的程序集”單元的“加密”和“保證 ASP.NET 應用程序的安全”單元的“Aspnet_setreg.exe 與進程、會話和標識”。 
-  如何安全地調用非托管代碼 特別注意傳遞給非托管 API 和非托管 API 傳遞出的參數,防止潛在的緩沖區溢出。驗證輸入和輸出字符串參數的長度,檢查數組邊界,并特別小心文件路徑的長度。在斷言非托管代碼權限之前,使用自定義權限聲明保護對非托管資源的訪問。如果用?SuppressUnmanagedCodeSecurityAttribute?提高性能,請小心使用。 有關更多信息,請參閱“構建安全的程序集”和“代碼訪問安全實踐”兩單元中的“非托管代碼”部分。 
-  如何執行安全的輸入驗證 對輸入進行限制、拒絕和清理,因為驗證已知有效類型、模式和范圍的數據要比通過查找已知錯誤字符來驗證數據容易得多。驗證數據的類型、長度、格式和范圍。對字符串輸入,請使用正則表達式。要使用執行類型檢查,則使用 .NET Framework 類型系統。有時候,可能需要對輸入進行清理。一個例子是對數據編碼,以保證其安全性。 有關輸入驗證設計策略,請參閱“設計安全 Web 應用程序的指導方針”單元的“輸入驗證”。有關實現細節,請參閱“構建安全的 ASP.NET 頁和控件”、“構建安全的 Web 服務”、“構建安全的遠程組件”和“構建安全的數據訪問”單元的“輸入驗證”部分。 
-  如何保證窗體身份驗證的安全性 劃分 Web 站點,隔離匿名用戶可以訪問的公共可訪問頁面和需要身份驗證訪問的限制性頁面。使用安全套接字層 (SSL) 來保護窗體身份驗證憑據和窗體身份驗證 cookie。限制會話生存時間和確保身份驗證 cookie 只在 HTTPS 上傳輸。對身份驗證 cookie 加密,不要在客戶端計算機上保留它,也不要將其用于個性化目的;對個性化使用單獨的 cookie。 
轉載于:https://www.cnblogs.com/mengzhu/p/4763828.html
總結
 
                            
                        - 上一篇: ios开发网络学习:一:NSURLCon
- 下一篇: Android Studio中获取SHA
