私のアプリケーションにはというセッション固定の脆弱性があります。この脆弱性を修正するために、ログイン後にセッションIDを変更しています。ASP.NETでセッションがnullになる
私は以下のウェブページを異なるフォルダのマスターとトランザクションに持っています。
~/Master/Login.aspx
:資格情報が検証した後、私は
Response.Cookies["ASPFIXATION"].Value ="xyz";
Session["ASPFIXATION"] = "xyz"
を設定していますし、/〜/マスターに
~/Master/Home.aspx
Home.aspxをリダイレクト:このページでは、私はクッキーとセッション値をチェックしていますページのロード時の値。
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);
}
ここで、セッションには値があり、それが検証されます。
~/Transaction/Report.aspx
:このページにリダイレクトして、このページの同じセッションとCookie値のロジックを確認する必要がある場合。
if (Request.Cookies["ASPFIXATION"] != null)
{
cookie_value = Request.Cookies["ASPFIXATION"].Value;
Request.Cookies["ASPFIXATION"].Value = cookie_value;
}
if (HttpContext.Current.Session["ASPFIXATION"] != null)
{
session_value = HttpContext.Current.Session["ASPFIXATION"].ToString();
HttpContext.Current.Session["ASPFIXATION"] = session_value;
}
それはまだdoesnの場合:しかし、ここでHttpContext.Current.Session["ASPFIXATION"]
の値はnull
とHttpContext.Current.Session.IsNewSession
の値もtrue
ここでコードを共有してください。あなたを導くためのより多くの情報が必要です。 – CrazyDev