程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 如何保護ASP.NET程序

如何保護ASP.NET程序

編輯:.NET實例教程

從安全的角度上講,相對於自身的前一版本,ASP.NET已經表現出很大的改進。使用這一新的開發平台,程序員可以很容易地設計用戶輸入驗證,同時,這一平台增加了很多特性,比如鎖住程序功能等。除此之外,.NET運行時間能夠支持垃圾收集和安全字符串的功能,這些都能預防外部的各種攻擊。一個合適安全的.Net程序不僅能夠阻止外部攻擊,並且能夠最大程度地減少各種形式的垃圾。

但是,不管ASP.NET具有多麼完善的功能,在安全問題上它也不是完美無缺。安全分析專家H.D. Moore,也就是四月份的CanSecWest研討會上的ASP.NET部分的three fairly major security holes(三個主要安全突破口)的作者,他說,這些強大的功能特性將會毫無價值,除非開發人員經常使用它們。Moore建議使用以下簡單的安全技巧,以保護你的ASP.Net程序。

使用一些簡單的設置控制

作為一種通用規則,請不要隨便將任何信息放置在網絡,因為這些信息將成為黑客攻擊的線索。除非是一些與ISAPI處理程序相映射的文件擴展名,比如文件擴展名為:.ASPx, .cs,及.vb。相反,以.txt, .csv, 及.XML的文件將不會自我保護,任何訪問網站的人都可以訪問這些文件。

在發布任何一個新的程序之前,一定要確認將支持跟蹤和調試的功能去掉,並注意將web.config文件中的customErrors標簽不要設置為“off”。這些安全措施有助於防止信息暴露到程序外面,特別是當程序發生錯誤的時候,這些信息包括:文件名,路徑,以及可能的源代碼等。

同時,在發布新程序之前,一定要清除程序的相關路徑。請確認去掉Visual Studio項目和程序路徑中的臨時文件。與ISAPI訪問過濾器不相映射的.sln和.slo文件將有可能從因特網上被看到,因為有些人可以猜想到程序的名稱,這樣就有可能導致巨大的攻擊。

避免使用cookIEless會議管理

Moore在評論中指出,ASP.Net的其中一個顯著缺點是在程序中使用了"cookie-less session management"(cookIE-less會議管理)方案而出現的"hijack"(搶劫)攻擊。這一方案將會議標識符嵌入到每一個URL,讓服務器能夠識別每一個客戶。這樣就有可能出現問題:當使用這一功能的服務器收到一個不認識但合法的會議標識符,它就會生成一個可以參加的會議,這樣一個“聰明的”黑客就會充分利用這一破綻,冒充合法用戶,合法會議標識符,就可以訪問系統內容。

這是一個陰險的攻擊,Moore說到,因為URL不會覺得用戶可疑,只有會議ID是可以偽造的。他建議開發人員盡可能地避免使用cookIEless會議管理,直到微軟把這一缺陷去掉。

“躲在砂盒(sandbox)裡”

有時候.Net運行時間管理環境也會遭到如緩沖溢出的攻擊,Moore指出,這是由於諸如使用StateServer類而導致的問題,隨意調用這些管理不良的類有時候會為黑客提供攻擊的線索。

Moore說道,開發人員應該盡可能地只限於使用.Net管理"sandbox" API函數,因為調用任何管理不良的類都有存在很大風險。然而,有時候你也可以使用一些特別的功能,如下面所示的技巧。

驗證,驗證,驗證

盡管推出很多優異的功能,一些傳統的特性還是深受應用,比如用戶輸入的驗證。開發人員應該充分的利用強大的Validator(驗證器)功能。這一功能可以從System.Web.UI.Validator擴展而來。如果你從未聽說過.Net's validators,你自己可以閱讀這方面的內容。

使用數據匹配功能

當在一個數據庫程序中使用數字域時,在使用變量之前一定要確定將變量與合適的數據類型匹配起來。這樣做可以預防產生SQL內部攻擊,特別是當用戶將一些非數字變量輸入數據庫時產生的異常。更重要的是,這樣做可以生成警報,或寫入日志,這很象是一個小型的非法闖入偵查系統。

更進一步的措施

如果你要在操作系統中安裝一個網絡程序,你最好充分利用web.config文件中的設置來運行程序,這樣才能確保不同的用戶驗證。除此之外,你可以利用網絡服務管理器來設置程序的信任級別,這樣可以提高程序的安全性。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved