防止ApplicationCookie在OWIN中进行cookie重播攻击

时间:2020-09-08 19:59:12

标签: asp.net asp.net-mvc owin owin-middleware

我正在尝试防止对使用OWIN身份验证的asp.Net MVC应用程序进行cookie重放攻击。我观察到的行为是-即使注销,我也可以使用Fiddler和以前有效的Cookie ApplicationCookie发送请求。这是Logout()

的代码
[HttpGet]
public ActionResult Logout()
{
    HttpContext.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
    return this.RedirectToAction("Login", "Account");
}       

注销后,cookie .AspNet.ApplicationCookie(如下所示)将被删除,如浏览器中所示。

ASP.NET_SessionId=wsggy1z2l0pckp3s0cjsxit5
.AspNet.ApplicationCookie=A8FiqaHloXglEyuXzwobhunoXWkKLmMTMs_tLNvqc6XLjtav4HO_3UY7O6CjuIieJB-ITFbXlIhpH-OETMTjScI_-q07-SXAlk-f0kUjpf-r6q64BedP1kbcClt1CmVPlqT_qxmJjlWvvDoRk3CB1IHgdNe6rkjOkZfaKiYw1BYpqdLY-BM3u46aWkpMbUUArOhOOv8d6PhxiJqLr2fZ2VJffWzRHlRQR8rxkA0Z3rz10l9J0K9m3ubg8w```

即使我注销并执行了上述注销方法之后,我也可以使用Fiddler更改用户的首选项,只需重播登录时发送的相同请求即可。

[HttpPost]
public ActionResult Preferences(UserPreferencesViewModel preferences)
{
    User user = this.UserProcessor.Find(preferences.UserId);
    user.CultureId = preferences.CultureId;
    this.UserProcessor.UpdatePreferences(user);
    CultureUtility.SetCurrentCulture(user.CultureId);
    return this.RedirectToAction("Index", "Home");

}

如何处理这种攻击?

0 个答案:

没有答案