解决ASP.NET Web表单中的Cookie重播攻击

时间:2018-10-23 10:57:25

标签: c# asp.net security webforms forms-authentication

在StackOverflow上回答this之后,Microsoft建议执行以下操作:

  1. 清除cookie。
  2. 将Response.Status属性设置为401。
  3. 调用Response.End方法,该方法将隐式重定向 到登录页面。

我在global.asax文件中想出了这行代码,(我在用户表isLogin中添加了一个额外的字段,在登录和注销页面中将其设置为true和false。 ..)

void Application_PostAuthenticateRequest(object sender, EventArgs e)
        {
            IPrincipal p = HttpContext.Current.User;

            if (p.Identity.IsAuthenticated)
            {
                var userName = p.Identity.Name;
                HttpCookie authenticationCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

                if (SecurityUtilities.CheckUserLoggedIn(userName) == false)
                {

                    FormsAuthentication.SignOut();
                    Response.StatusCode = 401;
                    Response.End();
                }              
            }
        } 

我想知道我做的这一切正确吗?这段代码呢?

if (SecurityUtilities.CheckUserLoggedIn(userName) == false)
{  

 FormsAuthentication.SignOut();
    Response.Redirect(FormsAuthentication.LoginUrl);
} 

0 个答案:

没有答案