新聞中心
ASP.NET MVC并不支持請求校驗

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供烏魯木齊企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務。10年已為烏魯木齊眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。
對于一個ASP.NET MVC應用程序來說,上述情況顯得更為類銳。因為在一個傳統(tǒng)型ASP.NETWeb表單應用程序中(不像一個ASP.NET MVC應用程序),你可以依賴于一種稱為請求校驗的系統(tǒng)特征。請求校驗會自動檢測是否表單數(shù)據(jù)來自于一個包含危險的搜索文本的頁面。如果你提交了這種包含危險數(shù)據(jù)的表單數(shù)據(jù)(例如包括了類括號<或>等字符),那么系統(tǒng)會自動拋出一個異常。
但是,請注意ASP.NET MVC框架目前還沒有提供這種請求校驗技術(shù)。所以,需要由你自己來完全承擔這一責任來阻止對一個ASP.NET MVC應用程序的Java Script注入式攻擊。
阻止Java Script注入式攻擊
阻止Java Script注入攻擊其實是很簡單的。為此,無論你何時通過一個視圖顯示檢索自某一個用戶的文本,請確保一定調(diào)用了Html.Encode()。
例如,下面是Index視圖的一部分,用于顯示顧客的回饋信息:
- 顧客回饋信息
- <%foreach(SurveysurveyinViewData.Model)
- {%>
- <%=survey.EntryDate.ToShortDateString()%>
- —
- <%=survey.Feedback%>
- <%}%>
這段代碼包含了一個foreach循環(huán),它循環(huán)搜索Survey實體。每一個Survey實體的Feedback和EntryDate屬性的值都會被顯示出來。
為了阻止Java Script注入式攻擊,你需要使用Html.Encode()輔助方法。下面展示了編寫這種循環(huán)的正確方法:
- CustomerFeedback
- <%foreach(SurveysurveyinViewData.Model)
- {%>
- <%=survey.EntryDate.ToShortDateString()%>
- —
- <%=Html.Encode(survey.Feedback)%>
- <%}%>
應該對什么內(nèi)容進行編碼
注意,我并沒有對前一節(jié)中的EntryDate屬性進行編碼。這里存在兩個原因說明當在一個頁面中顯示這個EntryDate屬性時我們不需要對這個屬性進行編碼。
首先,一個網(wǎng)站訪問者沒有輸入這個EntryDate屬性的值。該EntryDate屬性的值是通過你的代碼創(chuàng)建的。在這種情況下,一個黑客是不能輸入惡意的代碼。
假定一個網(wǎng)站訪問者的確輸入了該EntryDate屬性的值。因為該EntryDate是作為一個DateTime類型存儲于SQLServer數(shù)據(jù)庫中的,所以,一個黑客也不能把惡意的代碼加入到此EntryDate屬性中。因此,當你顯示它時你不需要擔心對這個屬性進行編碼的問題。
一般來說,當一個用戶通過表單上的文本框輸入待提交的內(nèi)容時才是你應該真正擔心Java Script注入式攻擊的時候。例如,這樣情況下你應該擔心用戶名稱的顯示問題。如果你允許一個用戶創(chuàng)建他們自己的用戶名,那么,一個用戶有可能會潛在地把一個惡意的Java Script字符串加入到他們的用戶名(或添加一個指向一個色情圖像的圖像標簽)。
此外,你還應該擔心超級鏈接的問題。因為大多數(shù)博客應用程序都支持匿名用戶把一個超級鏈接提交到他們的網(wǎng)站—當他們對一個博客提交相應的注釋信息時。這種情況下,一個黑客就有可能把惡意的Java Script加入到該鏈接中。下面是一個簡單的示例:
當你點擊這個鏈接時,即執(zhí)行JavaScript代碼。當然,在本文示例中不會發(fā)生任何惡意的事情。然而,你能夠從頁面上執(zhí)行的確可以竊取表單數(shù)據(jù)或cookies的代碼。以上是介紹ASP.NET阻止Java Script注入式攻擊。
【編輯推薦】
- 淺談ASP.NET MVC框架
- 介紹ASP.NET MVC中的MvcAjaxPanel
- ASP.NET MVC框架拯救UpdatePanel
- 用ASP.NET MVC源代碼尋找解決方案
- ASP.NET MVC框架的ActionInvoker
文章名稱:ASP.NET阻止Java Script注入式攻擊
當前路徑:http://www.dlmjj.cn/article/cddjpge.html


咨詢
建站咨詢
