国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法

來源:懂視網 責編:小采 時間:2020-11-27 22:37:52
文檔

asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法

asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法:本文實例講述了asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法。分享給大家供大家參考,具體如下: 在開發過程中,有時候會對用戶輸入進行過濾,以便保證平臺的安全性。屏蔽的方法有很多種,但是今天我說的這種主要是利用MVC中的ActionFi
推薦度:
導讀asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法:本文實例講述了asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法。分享給大家供大家參考,具體如下: 在開發過程中,有時候會對用戶輸入進行過濾,以便保證平臺的安全性。屏蔽的方法有很多種,但是今天我說的這種主要是利用MVC中的ActionFi

本文實例講述了asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法。分享給大家供大家參考,具體如下:

在開發過程中,有時候會對用戶輸入進行過濾,以便保證平臺的安全性。屏蔽的方法有很多種,但是今天我說的這種主要是利用MVC中的ActionFilterAttribute屬性來實現。由于MVC天然支持AOP,所以我們這種過濾方式正好利用了MVC的這種特性。

下面請看步驟:

首先,當用戶輸入自己的名稱的時候,帶有類似<BR>的內容的時候,由于MVC默認是需要驗證內容的,所以,會拋出一張黃頁錯誤,提示用戶:從客戶端檢測到潛在風險的Request值。這種頁面是極為不友好的,同時也是我們作為開發最不想見到的頁面,屏蔽這個錯誤很簡單,就是在響應的頁面ActionResult上面加上[ValidateInput(false)]的特性,這樣當用戶提交的時候,頁面將不會再次對輸入內容做檢測。

如果容忍這樣的行為,將會對系統的安全性造成威脅,所以最好的解決方法就是講其中類似 <>等進行轉義。

下面我們就來利用ActionFilterAttribute構造自己的轉義過濾類:

using System.Web.Mvc;
using TinyFrame.Plugin.StrongTyped.Models;

namespace TinyFrame.Plugin.StrongTyped
{
 public class FilterCharsAttribute : ActionFilterAttribute
 {
 protected string parameterName = "t";
 protected TestModel model;
 
 public override void OnActionExecuting(ActionExecutingContext filterContext)
 {
 base.OnActionExecuting(filterContext);
 
 //No Parameters, will return directly.
 if(!filterContext.ActionParameters.ContainsKey(parameterName))
 return;
 
 var t = filterContext.ActionParameters[parameterName] as TestModel;
 
 //No Entity data, will return directly
 if (t == null)
 return;
 
 //Replace chars that should be filtered
 if (!string.IsNullOrEmpty(t.TName))
 t.TName = t.TName.Replace("<", "<").Replace(">", ">");
 if (!string.IsNullOrEmpty(t.TSite))
 t.TSite = t.TSite.Replace("<", "<").Replace(">", ">");
 }
 }
}

第8行,代表我們的用戶輸入的實體類參數,具體的Controller代碼如下:

public ActionResult Index(TestModel t)
{
 ViewData["ConvertedModel"] = t;
 return View();
}

第11行,通過重載OnActionExecuting方法,我們可以定義自己的Filter。

第19行,將獲取的Input結果轉換成entity。

第27,29行,將潛在的危險字符進行轉義。

這樣書寫完畢之后,我們就打造了一個可以過濾掉關鍵字的Filter了。如果想要做的通用的話,需要對輸入的filterContext.ActionParameters進行遍歷,并通過反射構建實例,再通過反射字段值,實現通用的關鍵字過濾。這里我只提供思路,具體的做法就看自己了。

然后將這個方法加入到Controller中需要檢測的頁面的頭部,即可:

[ValidateInput(false)]
[FilterChars]
public ActionResult Index(TestModel t)
{
 ViewData["ConvertedModel"] = t;
 return View();
}

這樣,我們就完成了對輸入數據的過濾操作,下面看看結果吧:

我們可以清楚的看到,輸入結果,輸出后,一對尖角號被轉義了。

希望本文所述對大家asp.net程序設計有所幫助。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法

asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法:本文實例講述了asp.net MVC利用ActionFilterAttribute過濾關鍵字的方法。分享給大家供大家參考,具體如下: 在開發過程中,有時候會對用戶輸入進行過濾,以便保證平臺的安全性。屏蔽的方法有很多種,但是今天我說的這種主要是利用MVC中的ActionFi
推薦度:
標簽: 過濾 使用 的方法
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美1区二区三区公司 | 国产精选一区二区 | 亚洲欧美一区二区三区孕妇 | 精品欧美一区二区三区精品久久 | 亚洲视频在线视频 | 亚洲精品毛片久久久久久久 | 国产亚洲人成a在线v网站 | 北条麻妃在线观看 | 亚欧精品一区二区三区 | 亚洲国产成人久久综合野外 | 一本一本久久α久久精品66 | 成人无码一区二区片 | 国产 在线 | 日韩 | 91国内精品久久久久免费影院 | 欧美一区二区在线免费观看 | 欧美第一区 | www色中色| 免费视频一区二区 | 亚洲欧美国产精品专区久久 | 国产偷亚洲偷欧美偷精品 | 在线观看精品国产 | 久久2| 色另类| 日韩影片在线观看 | 欧美高清a | 亚洲国产精品久久久久666 | 国偷自产一区二区免费视频 | 91精品一区二区三区在线观看 | 色yeye在线观看 | 最新国产网址 | 国产一级自拍 | 国模吧国模吧一二区 | 国产高清在线免费 | 小处雏高清一区二区三区 | 国产成人综合久久精品尤物 | 成人一级免费视频 | 国产成人精品日本亚洲11 | 99久久精品免费国产一区二区三区 | 日韩高清第一页 | 欧美亚洲视频在线观看 | 亚洲欧洲日韩 |