淺談ASP.NET MVC應(yīng)用程序的安全性
前言:保護(hù)Web應(yīng)用程序的安全性看起來(lái)時(shí)間苦差事,這件必須要做的工作并不能帶來(lái)太多的樂(lè)趣,但是為了回避尷尬的安全漏洞問(wèn)題,程序的安全性通常還是不得不做的。
1.ASP.NET Web Forms開(kāi)發(fā)人員
(1)因?yàn)锳SP.NET MVC不像ASP.NET Web Forms那樣提供了很多自動(dòng)保護(hù)機(jī)制來(lái)保護(hù)頁(yè)面不受惡意用戶的攻擊,所以閱讀本博客來(lái)了解這方面的問(wèn)題,更明確的說(shuō)法是:ASP.NET Web Forms致力于使應(yīng)用程序免受攻擊。例如:
1)服務(wù)器組件對(duì)顯示的值和特性進(jìn)行HTML編碼,以幫助阻止XSS攻擊。
2)加密和驗(yàn)證試圖狀態(tài),從而幫助阻止篡改提交的表單。
3)請(qǐng)求驗(yàn)證(%@page validaterequest=”true”%)截獲看起來(lái)是惡意的數(shù)據(jù)并提出警告(這是MVC框架默認(rèn)開(kāi)啟的保護(hù))。
4)事件驗(yàn)證幫助組織注入攻擊和提交無(wú)效值。
(2)轉(zhuǎn)向ASP.NET MVC意味著這些問(wèn)題的處理將落到程序員的肩上—對(duì)于某些人來(lái)說(shuō)可能會(huì)引起恐慌,而對(duì)另一些人來(lái)說(shuō)可能是一件好事。
(3)如果認(rèn)為框架”就應(yīng)該處理這種事情”的話,那么確實(shí)有一種框架可以處理這一類事情,而且處理的很好,它就是asp.net web forms。然而,其代價(jià)就是失去了對(duì)asp.net web froms引入的抽象層次的一些控制。
(4)ASP.NET MVC提供了對(duì)標(biāo)記更多的控制,這意味著程序員要承擔(dān)更多的責(zé)任,要明確的是,ASP.NET MVC提供了許多內(nèi)置的保護(hù)機(jī)制(例如:默認(rèn)利用HTML的輔助方法和Razor語(yǔ)法進(jìn)行HTML編碼以及請(qǐng)求驗(yàn)證等功能特性)。
2.ASP.NET MVC開(kāi)發(fā)人員
(1)對(duì)于存在安全風(fēng)險(xiǎn)的應(yīng)用程序,主要的借口是開(kāi)發(fā)人員缺乏足夠的信息或者理解,我們想要改變這一局面,但是我們也意識(shí)到人無(wú)完人,總會(huì)有疏忽的時(shí)候。鑒于此,請(qǐng)記住下面的錦囊妙計(jì)。
1)永遠(yuǎn)都不要相信用戶提供的任何數(shù)據(jù)
2)每當(dāng)渲染作為用戶輸入而引入的數(shù)據(jù)時(shí),請(qǐng)對(duì)其進(jìn)行HTML編碼(如果數(shù)據(jù)作為特性值顯示,就應(yīng)對(duì)其進(jìn)行HTML特性編碼)
3)考慮好網(wǎng)站的那些部分允許匿名訪問(wèn),那些部分要求認(rèn)證訪問(wèn)。
4)不要試圖自己凈化用戶的HTML輸入—否則將遭遇失敗。
5)在不需要通過(guò)客戶端腳本訪問(wèn)cookie時(shí),使用HTTP-only cookie。
6)強(qiáng)烈建議使用AntiXss庫(kù)(www.codeplex.com/AntiXSS)。
(2)同時(shí),應(yīng)用程序的構(gòu)建基于這樣一個(gè)假設(shè),即只有特定的用戶才能執(zhí)行某些操作,其他用戶則不能執(zhí)行這些操作。
注解:后面將陸續(xù)介紹如何使用ASP.NET MVC中的安全特性來(lái)執(zhí)行向授權(quán)這樣的應(yīng)用功能,然后介紹如何處理常見(jiàn)的安全威脅。
相關(guān)文章
asp.net創(chuàng)建位圖生成驗(yàn)證圖片類(驗(yàn)證碼類)
本文提供一個(gè)asp.net生成驗(yàn)證圖片的類,功能是顯示簡(jiǎn)單的字符串,大家參考使用吧2014-01-01
ASP.NET Core擴(kuò)展庫(kù)之Http請(qǐng)求模擬功能的使用
這篇文章主要介紹了ASP.NET Core擴(kuò)展庫(kù)之Http請(qǐng)求模擬功能的使用方法,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04
asp.net簡(jiǎn)單實(shí)現(xiàn)頁(yè)面換膚的方法
這篇文章主要介紹了asp.net簡(jiǎn)單實(shí)現(xiàn)頁(yè)面換膚的方法,可實(shí)現(xiàn)給頁(yè)面動(dòng)態(tài)添加樣式的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-12-12
Asp.net下拉樹的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Asp.net下拉樹的實(shí)現(xiàn)過(guò)程,文章思路清晰,推薦給大家閱讀,需要的朋友可以參考下2015-08-08
asp.net(c#)做一個(gè)網(wǎng)頁(yè)數(shù)據(jù)采集工具
最近做一個(gè)網(wǎng)站,該網(wǎng)站需要添加4000多 產(chǎn)品信息,如果用人工方法去別的網(wǎng)站copy那至少要花費(fèi)半月時(shí)間才能完成,所以我個(gè)辦法使用c#作出來(lái)了一個(gè)網(wǎng)頁(yè)數(shù)據(jù)采集軟件.2009-12-12
.NET?Core使用Autofac容器的DI依賴注入,IOC控制反轉(zhuǎn)及AOP切面編程
本文詳細(xì)講解了.NET?Core使用Autofac容器的DI依賴注入,IOC控制反轉(zhuǎn)及AOP切面編程,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
asp.net 請(qǐng)求輸入到輸出的全過(guò)程及httpHandler和httpModuler詳細(xì)介紹
看了幾篇講述httpHandler和HttpModuler的文章,雖然說(shuō)沒(méi)有完全了解底層操作,但是我也算明白了一個(gè)請(qǐng)求從進(jìn)入IIS到最后輸出都經(jīng)歷了哪些過(guò)程,感興趣的朋友可以了解下2013-01-01
國(guó)產(chǎn)化之銀河麒麟安裝.netcore3.1的詳細(xì)步驟(手動(dòng)安裝)
這篇文章主要介紹了國(guó)產(chǎn)化之銀河麒麟安裝.netcore3.1的詳細(xì)步驟(手動(dòng)安裝),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
asp.net XMLHttpRequest實(shí)現(xiàn)用戶注冊(cè)前的驗(yàn)證
用戶注冊(cè)前的驗(yàn)證,提高用戶體驗(yàn)。2009-10-10

