【问题标题】:Update cookie after authentication认证后更新cookie
【发布时间】:2018-08-07 11:11:10
【问题描述】:

我们是一个网络应用程序。安全团队建议我们在每次授权升级时更改 cookie。

因此,我想在身份验证后更新客户端 cookie。我使用了以下代码:

  System.Web.HttpCookie cookie = Request.Cookies["ASP.NET_SessionId"];
  System.Web.HttpCookie dummyCookie = new System.Web.HttpCookie("SessionId");
  cookie.Value = dummyCookie.Value;
 Response.Cookies.Add(cookie);

问题是一旦 cookie 更新,用户就会再次被视为未经身份验证的用户。

提前致谢。

【问题讨论】:

  • 这看起来像是堆栈溢出的问题。我会投票支持迁移。

标签: cookies session-fixation


【解决方案1】:

我已经在我的项目中实现了如下处理。

当用户浏览应用程序登录页面时。我正在使用页面加载中的以下代码删除 session-cookie 中的 sessionid。

if(!IsPostBack)
{
            HttpContext.Current.Session.Clear();
            HttpContext.Current.Session.Abandon();
            HttpContext.Current.Session.RemoveAll();
            Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
}

上面的代码会清空会话 cookie 中的 sessionid。现在,当用户输入适当的凭据时,asp.net 将自动创建新的会话 ID,因此浏览器将在成功验证后获得新会话。如果用户输入了错误的凭据,那么使用上面的代码我将再次重置 sessionid,以便在成功验证时自动生成新的 sessionid。

在我的项目中实施上述实施后,安全工具不再显示会话固定问题。我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-10
    • 2015-02-09
    • 2018-12-27
    • 2011-01-17
    • 1970-01-01
    • 2013-07-23
    • 2016-11-15
    • 1970-01-01
    相关资源
    最近更新 更多