我正在尝试防止对使用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");
}
如何处理这种攻击?