新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ASP.NET的Web應(yīng)用程序安全性的探討

基于ASP.NET的Web應(yīng)用程序安全性的探討

作者: 時(shí)間:2009-09-01 來(lái)源:網(wǎng)絡(luò) 收藏
1 引言
目前,雖然網(wǎng)站的絕大部分資源對(duì)瀏覽者是開(kāi)放的.但是有些信息則是特別針對(duì)某些用戶(hù)的,例如政府網(wǎng)、企業(yè)內(nèi)部網(wǎng)等,只有特定的用戶(hù)才能訪(fǎng)問(wèn)。需要使用嚴(yán)密的安全機(jī)制來(lái)保護(hù),以確定用戶(hù)訪(fǎng)問(wèn)資源的權(quán)限。安全性便是為限制只有特定用戶(hù)群才能訪(fǎng)問(wèn)某些文件而設(shè)計(jì)。
正確識(shí)別用戶(hù)身份,嚴(yán)密控制用戶(hù)對(duì)資源的訪(fǎng)問(wèn),是安全性中最重要問(wèn)題,也是最基本的一環(huán)。實(shí)現(xiàn)安全操作,必須經(jīng)過(guò)驗(yàn)證、授權(quán)和模擬等處理程序完成。

2 口令驗(yàn)證
安全處理的第一步便是驗(yàn)證,即對(duì)于請(qǐng)求信息的用戶(hù)驗(yàn)證其身份。用戶(hù)使用證件表明其身份.最常用的就是用戶(hù)名和密碼。在驗(yàn)證用戶(hù)身份時(shí),若系統(tǒng)不能根據(jù)用戶(hù)的證件確定其身份,則身份驗(yàn)證失敗,用戶(hù)將被拒絕訪(fǎng)問(wèn);若證件有效,則允許用戶(hù)進(jìn)入系統(tǒng),并被賦予一個(gè)合法的已知身份。
口令驗(yàn)證是根據(jù)用戶(hù)知道什么進(jìn)行驗(yàn)證的一個(gè)例子,是目前最廣泛的身份驗(yàn)證方法,雖然其安全性比其他幾種方法差,但簡(jiǎn)單易行,如果使用恰當(dāng),可以提供一定程度的安全保證。防止口令泄漏是這一方法中的關(guān)鍵問(wèn)題。
口令一般是由字母、數(shù)字和特殊字符等組成的字符串,其選擇原則:①用戶(hù)容易記憶;②難于被別人猜中或發(fā)現(xiàn);③抗分析能力強(qiáng);④限制使用期限,可經(jīng)常更換。
目前主要有2種口令生成方法:①由用戶(hù)自己選擇口令。②由系統(tǒng)自動(dòng)生成隨機(jī)的口令。前者優(yōu)點(diǎn)是用戶(hù)很容易記住它,一般不會(huì)忘記.因?yàn)樗x的口令往往與用戶(hù)的某些特征有關(guān),如生日、配偶名、電話(huà)號(hào)碼等,正因?yàn)檫@樣,口令很容易被猜出來(lái),泄漏的機(jī)會(huì)較大。較好的方法是設(shè)計(jì)一個(gè)口令生成器,隨機(jī)地為用戶(hù)生成口令。這種方法帶來(lái)的困難是用戶(hù)記憶非常困難,即使這個(gè)字符串不長(zhǎng),要讓一個(gè)人記住它也不是一件容易的事。口令的管理很麻煩,用戶(hù)的口令要嚴(yán)格保密,不能被其他用戶(hù)得到。口令更不能以明文的形式存放在系統(tǒng)中,這樣口令很容易泄漏。因此,必須使用數(shù)據(jù)加密的方法將口令以密文的形式存放在系統(tǒng)中。
提供了3種驗(yàn)證用戶(hù)的模式,每一種驗(yàn)證模式都是通過(guò)一個(gè)獨(dú)立的驗(yàn)證程序?qū)崿F(xiàn)。3種驗(yàn)證模式分別為Windows、Forms和Passport。Windows驗(yàn)證是通過(guò)I2S實(shí)現(xiàn):Forms驗(yàn)證是在開(kāi)發(fā)人員自己的服務(wù)器上實(shí)現(xiàn):而Passport驗(yàn)證則是通過(guò)微軟公司的訂閱服務(wù)實(shí)現(xiàn)。
2.1 Windows驗(yàn)證
當(dāng)用戶(hù)請(qǐng)求頁(yè)面時(shí),請(qǐng)求信息首先遇到的是Web服務(wù)中的Internet信息服務(wù)。Internet信息服務(wù)首先驗(yàn)證用戶(hù)身份,或者將驗(yàn)證工作交給。這種Windows身份驗(yàn)證過(guò)程如圖l所示。

本文引用地址:http://2s4d.com/article/188685.htm

2.1. l 基本身份驗(yàn)證
除了根本不進(jìn)行驗(yàn)證外,基本身份驗(yàn)證是一種最簡(jiǎn)單的驗(yàn)證方式,也是一種收集用戶(hù)證件的行業(yè)標(biāo)準(zhǔn)方法。
基本身份驗(yàn)證的步驟:①客戶(hù)向服務(wù)器請(qǐng)求被限制的資源;②Web服務(wù)器以“401 unauthoried”進(jìn)行響應(yīng);③客戶(hù)端瀏覽器接收到這條信息后,要求用戶(hù)輸入用戶(hù)名和密碼來(lái)進(jìn)行驗(yàn)證;④如果驗(yàn)證失敗,用戶(hù)證件無(wú)效,則會(huì)返回“2”,重新以“401 Unauthoried”響應(yīng);⑤如果驗(yàn)證成功,客戶(hù)瀏覽器便通過(guò)身份驗(yàn)證,可以訪(fǎng)問(wèn)請(qǐng)求資源。
2.1.2 Windows域服務(wù)器的摘要式驗(yàn)證
摘要式身份驗(yàn)證,提供了與基本身份驗(yàn)證同一樣的功能,在通過(guò)網(wǎng)絡(luò)往服務(wù)器傳送用戶(hù)證件信息時(shí)提高了安全性。摘要式驗(yàn)證會(huì)使用MD5哈希算法加密來(lái)處理用戶(hù)證件資料。由于此項(xiàng)處理是單向,就算有人從網(wǎng)絡(luò)上將它們截取下來(lái),也無(wú)法解譯成原來(lái)的用戶(hù)名與密碼,從而保證服務(wù)器資源的安全性。
2.1.3 集成Windows身份驗(yàn)證
集成Windows身份驗(yàn)證時(shí),將不會(huì)要求用戶(hù)輸入證件。相反,當(dāng)瀏覽器連接到服務(wù)器后,即將加密后的、用戶(hù)登錄計(jì)算機(jī)時(shí)使用的信息發(fā)送給服務(wù)器。服務(wù)器檢查這些信息,以確定用戶(hù)是否有權(quán)訪(fǎng)問(wèn)。
2.2 窗體驗(yàn)證
窗體驗(yàn)證,即驗(yàn)證用戶(hù)證件資料。在ASP.NET中,可以選擇由ASP.NET通過(guò)窗體驗(yàn)證進(jìn)行身份驗(yàn)證,而不是通過(guò)I2S。窗體驗(yàn)證是ASP.NET驗(yàn)證服務(wù),它能夠讓?xiě)?yīng)用程序擁有自己的登錄界面。當(dāng)用戶(hù)試圖訪(fǎng)問(wèn)被限制的資源時(shí),便會(huì)被重定向至登錄界面,而不是彈出登錄對(duì)話(huà)框。在登錄頁(yè)面中,可以自行編寫(xiě)代碼驗(yàn)證用戶(hù)的證件資料。
安全處理流程如圖2所示。

在登錄界面中提交按鈕的Click事件處理程序中,可檢查用戶(hù)輸入的證件資料,從而判斷證書(shū)資料是否正確,也就是身份驗(yàn)證的過(guò)程。根據(jù)證件資料不同的存放位置,可以將驗(yàn)證方式劃分為以下3種。
(1)在代碼中直接驗(yàn)證設(shè)計(jì)人員可以直接在代碼中將用戶(hù)輸入的證件資料一一對(duì)比,從而判斷用戶(hù)證件資料是否正確。
(2)利用數(shù)據(jù)庫(kù)實(shí)現(xiàn)驗(yàn)證在代碼中直接對(duì)比用戶(hù)的證件資料,不僅麻煩而且代碼也難以維護(hù)。當(dāng)用戶(hù)很多時(shí),驗(yàn)證會(huì)顯得十分麻煩。這時(shí),可將用戶(hù)列表信息先存儲(chǔ)在數(shù)據(jù)庫(kù)里,然后在login_btn_Click()方法中編寫(xiě)代碼從數(shù)據(jù)庫(kù)取出用戶(hù)資料,再逐一對(duì)比,如果有相符者,則通過(guò)驗(yàn)證。
(3)利用配置文件實(shí)現(xiàn)驗(yàn)證在配置文件中,使用forms>子元素的credentials>項(xiàng)定義用戶(hù)名和密碼,即將正確的用戶(hù)證件資料存儲(chǔ)在配置文件中。當(dāng)用戶(hù)登錄時(shí)單擊“登錄”按鈕,可以在其Click事件處理程序中調(diào)用FormsAuthentication,Authenticate()方法,系統(tǒng)便會(huì)自動(dòng)地將用戶(hù)所輸入的信息與credentials>項(xiàng)中的用戶(hù)名與密碼相比較,如果相符,則可通過(guò)驗(yàn)證。
2.3 Passoort驗(yàn)證
Passport驗(yàn)證是微軟公司提供的一種驗(yàn)證服務(wù),其工作原理與窗體驗(yàn)證類(lèi)似,只是無(wú)需創(chuàng)建任何自定義的功能。這兩種方法都是在客戶(hù)端創(chuàng)建Cookie,用于授權(quán)。使用Passport驗(yàn)證時(shí),用戶(hù)將被重定向至Passport登錄網(wǎng)頁(yè),該頁(yè)面提供了一個(gè)非常簡(jiǎn)單的窗體讓用戶(hù)填寫(xiě)用戶(hù)驗(yàn)證資料,窗體將通過(guò)Passport服務(wù)來(lái)檢查用戶(hù)的證件,以確定用戶(hù)的身份是否有效。如果用戶(hù)證件通過(guò)了驗(yàn)證,則為它在客戶(hù)端計(jì)算機(jī)上建立一個(gè)驗(yàn)證Cookie。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ASP NET Web 應(yīng)用程序

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉