直接コードでMVCプロジェクトの録音方法、独自の抗CSRF攻撃、

プロセスのフロントエンド1.

 

2.背景 

 1)ここで、放電して、フィルタを追加

2)フィルター法に直接添加して検証を必要とします

完了

以下は、コードブロックフィルタであります

/// <まとめ>
CSRF攻撃を防ぐのに///アヤックスプラスAntiForgeryToken
/// </要約>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method、trueに=継承され、AllowMultiple = falseに)]
publicクラスMyValidateAntiForgeryToken:AuthorizeAttribute
{
読み取り専用BOOLプライベート_ignore;
/// <要約>
///偽造セキュリティ属性
/// </要約>
/// <PARAM NAME = "無視">セキュリティ検証を無視するかどうか。</ param>の
公共MyValidateAntiForgeryToken(BOOL falseに無視= )
{
=無視this._ignore;
}

公共オーバーライド無効OnAuthorization(AuthorizationContext filterContext)
{
場合(filterContext == nullの)
新しい例外ArgumentNullException( "filterContext")を投げます。

(_ignore)であれば
リターン;

(filterContext.IsChildAction)であれば
リターン;

///只处理POST请求
場合(String.Equals(filterContext.HttpContext.Request.HttpMethod、 "POST"、StringComparison.OrdinalIgnoreCase)!)
リターン。

VAR要求= filterContext.HttpContext.Request。
VAR antiForgeryCookie = request.Cookies [AntiForgeryConfig.CookieName]。
VARにcookievalue = antiForgeryCookie!= nullの?antiForgeryCookie.Value:NULL;
AntiForgery.Validate(にcookievalue、のRequest.Form [ "__ RequestVerificationToken"]); //从クッキー和フォーム中验证防伪标记 
}
}

おすすめ

転載: www.cnblogs.com/yechangzhong-826217795/p/11776491.html