【发布时间】:2016-05-13 08:04:27
【问题描述】:
我的应用程序有一个会话固定漏洞。为了修复该漏洞,我在登录后更改了会话 ID。
我在不同的 Master 和 Transaction 文件夹中有以下网页。
~/Master/Login.aspx : 验证凭据后,我正在设置
Response.Cookies["ASPFIXATION"].Value ="xyz";
Session["ASPFIXATION"] = "xyz"
并重定向到 ~/Master/Home.aspx
~/Master/Home.aspx :在此页面中,我正在使用页面加载事件中的 cookie 值检查会话值。
string cookie_value = string.Empty;
string session_value = string.Empty;
if (Request.Cookies["ASPFIXATION"] != null)
cookie_value = Request.Cookies["ASPFIXATION"].Value;
if (HttpContext.Current.Session["ASPFIXATION"] != null)
session_value = HttpContext.Current.Session["ASPFIXATION"].ToString();
if (cookie_value != g_SessionFix)
{
if (Request.Cookies["ASP.NET_SessionId"] != null)
{
Response.Cookies["ASP.NET_SessionId"].Value = null;
Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddDays(-1);
}
if (Request.Cookies["ASPFIXATION"] != null)
{
Response.Cookies["ASPFIXATION"].Value = null;
Response.Cookies["ASPFIXATION"].Expires = DateTime.Now.AddDays(-1);
}
Response.Redirect("~/Master/Login.aspx", false);
}
这里的 Session 有值并且是经过验证的。
~/Transaction/Report.aspx:如果我重定向到此页面并且必须在此页面加载中检查相同的会话和 cookie 值逻辑。但是这里HttpContext.Current.Session["ASPFIXATION"]的值是null,HttpContext.Current.Session.IsNewSession的值也是true
【问题讨论】:
-
你能在这里分享你的代码吗?需要更多信息来指导您。