基于ASP.NET的Web應(yīng)用程序安全性的探討
建立Passport驗(yàn)證的關(guān)鍵一步是正確地設(shè)置Web.config文件,使用代碼如下所示:本文引用地址:http://www.biyoush.com/article/188685.htm
3 授權(quán)
用戶通過(guò)驗(yàn)證,并且取得自己的身份后,就必須檢查其是否擁有訪問(wèn)所請(qǐng)求資源的權(quán)限,此過(guò)程便稱為“授權(quán)”。例如,在機(jī)密的政府機(jī)構(gòu)中,如果有人想進(jìn)入某些房間,則首先必須檢查其是否擁有進(jìn)入該房間的權(quán)限。
在Windows系統(tǒng)中,大部分的文件都會(huì)擁有一個(gè)訪問(wèn)控制列表。不僅會(huì)列出有哪些用戶或者用戶組訪問(wèn)該資源,而且詳細(xì)地指出了每個(gè)用戶或者用戶組所能夠運(yùn)行的訪問(wèn)類型一能否讀取、寫(xiě)入、修改和刪除等。
《圖片管理系統(tǒng)》中的權(quán)限聲明:12級(jí)的用戶指超級(jí)管理員,即可以執(zhí)行所有操作;11級(jí)的用戶擁有修改圖片權(quán)限:10級(jí)的用戶只有瀏覽圖片的權(quán)限。
在ASP.NET中,授權(quán)方式主要有2種,它可以依賴Windows指出通過(guò)驗(yàn)證的用戶可訪問(wèn)哪些資源,稱之為文件授權(quán);也可依賴被請(qǐng)求資源的URL,被稱為URL授權(quán)。下面的這段代碼可實(shí)現(xiàn)對(duì)多個(gè)目錄的權(quán)限控制:
URL授權(quán)由UrlAuthorizationModule HTTP模塊控制,該模塊的行為由存儲(chǔ)于web.config文件的authorization>中的設(shè)置驅(qū)動(dòng)。在URL授權(quán)的最后階段,需要指出的是,只有ASP.NET資源受到監(jiān)控。通常,基于URL的授權(quán)很少與Windows身份驗(yàn)證一起使用,URL授權(quán)對(duì)于Forms身份驗(yàn)證則更有效。
4 模擬
ASP.NET的另一項(xiàng)重要安全功能便是用戶賬戶模擬。默認(rèn)狀態(tài)下,ASP.NET不啟用模擬,而是執(zhí)行所有的代碼,應(yīng)用程序可訪問(wèn)所有的文件與文件夾,這時(shí)必須采用其他的安全措施控制訪問(wèn)權(quán)限。
圖3詳細(xì)說(shuō)明了用戶為獲得安全資源的訪問(wèn)權(quán)限需要經(jīng)歷的過(guò)程。
使用模擬功能,ASP.NET能夠以訪問(wèn)應(yīng)用程序的用戶身份來(lái)執(zhí)行頁(yè)面。即若用戶以“Winters”身份來(lái)訪問(wèn)資源,則ASP.NET將把自己模擬成“Winters”來(lái)使用服務(wù)器上的各項(xiàng)資源,并根據(jù)該用戶的權(quán)限限制或者允許ASP.NET訪問(wèn)某些資源,從而實(shí)現(xiàn)數(shù)據(jù)的安全性。模擬用戶的流程圖如圖4所示。
ASP.NET應(yīng)用程序是系統(tǒng)資源的用戶,需要訪問(wèn)文件、內(nèi)存等,因此在默認(rèn)狀態(tài)下,ASP.NET應(yīng)用程序進(jìn)程有非常大的權(quán)限,幾乎可訪問(wèn)系統(tǒng)提供的任何資源。但有時(shí)可能根據(jù)需要通過(guò)使用ASP.NET應(yīng)用程序的用戶身份來(lái)限制對(duì)資源的使用,這便要運(yùn)用模擬功能,讓ASP.NET模擬用戶身份運(yùn)行程序。
5 結(jié)語(yǔ)
綜上所述,是通過(guò)開(kāi)發(fā)《圖片管理系統(tǒng)》中對(duì)ASP.NET安全性的探討。文章中的例子包括程序代碼段都是在開(kāi)發(fā)過(guò)程中應(yīng)用的、經(jīng)過(guò)驗(yàn)證的、也是運(yùn)行通過(guò)的。有關(guān)于ASP.NET安全性問(wèn)題有待于繼續(xù)探討。
評(píng)論