[英]Do we still need to disable request validation when using Razor?
在ASP.NET MVC視圖中,通常使用Razor的語法綁定模型值:
@Html.DisplayFor(m => m.Name)
我們知道Razor默認會對該值進行html編碼。 但是,假設有一個惡意用戶在文本框中輸入腳本並提交腳本:
<script>alert('Executing evil script')</script>
現在,如果我們不使用[ValidateInput(false)]
或[AllowHtml]
屬性,我們將被HttpRequestValidationException
[AllowHtml]
,這意味着每次用戶提交表單時都必須捕獲此異常。
從另一個stackoverflow 問題的答案中,我知道我們可以在應用程序級別禁用請求驗證,但是許多人認為這是一種不好的做法。
我的問題是,鑒於我們有Razor可以逃避所有>
和<
,如果我們關閉請求驗證功能,我們是否可以假設該站點仍然安全?
不,在Razor頁面生成過程中僅依靠HTML編碼並關閉請求驗證並不是對抗XSS攻擊的好策略:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.