none
会话标识未更新 RRS feed

  • 问题

  • 我用C#.net写的系统,用ibm app扫描工具检测出登陆页面存在“会话标识未更新”高危漏洞,请问哪位朋友碰见过?如何解决呢?这个问题困扰我很久了,在线等待,先谢过。
    • 已移动 Sheng Jiang 蒋晟Moderator 2011年12月10日 4:43 (发件人:Visual Studio 相关讨论(Visual Studio 2010以前版本))
    2011年12月10日 4:07

答案

  • 你好,

    如果是用户尚未登录时就有session cookie产生。可以尝试在打开页面的时候,让这个cookie过期。等到用户再登陆的时候就会生成一个新的session。

    2011年12月14日 5:15
    版主

全部回复

  • 我用C#.net写的系统,用ibm app扫描工具检测出登陆页面存在“会话标识未更新”高危漏洞,请问哪位朋友碰见过?如何解决呢?这个问题困扰我很久了,在线等待,先谢过。
    • 已合并 Lie You 2011年12月12日 9:04 Merge them to keep into the same topic for good discussion
    2011年12月10日 4:09
  • 试试看

    在登陆页面的Page_Load事件

    if(!IsPostBack)

    {

    Session.Abandon();
    Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
    }

     

    來更新Session

    Shadowと愉快なコード達


    2011年12月10日 11:45
  • 我用C#.net写的系统,用ibm app扫描工具检测出登陆页面存在“会话标识未更新”高危漏洞,请问哪位朋友碰见过?如何解决呢?这个问题困扰我很久了,在线等待,先谢过。

    试试看

    在登陆页面的Page_Load事件

    if(!IsPostBack)

    {

    Session.Abandon();
    Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));

    }

     

    來更新Session

    Shadowと愉快なコード達

    2011年12月10日 16:31
  • 用IBM的APP扫描工具检测出我做的C#.net的程序有会话标识未更新这个漏洞,请问下如何解决?这个问题困扰我很久了,在线等待高手回复,谢谢了

    在Page_load里面添加了如何代码:

     Session.Clear();
            Session.Abandon();
            Response.Write("<br />");
            int num = Request.Cookies.Count;
            for (int i = 0; i < num; i++)
            {
               // Response.Cookies[i].Expires = DateTime.Now.AddDays(-1);
                Response.Write(Request.Cookies[i].Name+"   "+Request.Cookies[i].Value+"<br />");
            }
            if (Request.Cookies["ASP.NET_SessionId"] != null)
            {
                HttpCookie cookies = new HttpCookie("ASP.NET_SessionId");
                cookies.Expires = DateTime.Now.AddDays(-1);
                Response.Cookies.Add(cookies);
            }
            /

    2011年12月12日 13:46
  • 这种方法没有用,加上后还是报会话标识未更新,

    我现在是这样处理的,在登陆页面page_load里面加入了:

    Session.Abandon();

     if (Request.Cookies["ASP.NET_SessionId"] != null)
            {
                HttpCookie cookies = new HttpCookie("ASP.NET_SessionId");
                cookies.Expires = DateTime.Now.AddDays(-1);
                Response.Cookies.Add(cookies);
            }

    由于我登陆成功后页面是index.html的框架页面,系统本身没有用到session,为了让登陆成功后产生一个固定的sessionid我建立了一个中间页面,专门用来产生sessionid的,首先我在登陆页面点击登陆按钮的时候直接跳转到中间页面:Response.Redirect("Mid.aspx");

    在中间页面page_load中加入:

     Session["a"] = "a";
     Response.Redirect("index.html");

    之后我做了些打印,发现登陆前sessionid和登陆后的不一样,并且登陆sessionid是固定不变的,可是这种方式还是解决不了,请高手回复,有什么好的方式请告诉我,好困扰

    2011年12月12日 14:58
  • 你好,

    如果是用户尚未登录时就有session cookie产生。可以尝试在打开页面的时候,让这个cookie过期。等到用户再登陆的时候就会生成一个新的session。

    2011年12月14日 5:15
    版主
  • 我在page_load和登陆成功处理事件分别添加的过期处理可问题依旧,急啊急
    2011年12月15日 14:05
  • java里面设置过期很快就解决掉了,可是.net的怎么老解决不了呢,是不是我放置的地方不对呢?
    2011年12月15日 14:07
  • 使cookie过期,可以参考一下这篇文章。

    http://msdn.microsoft.com/en-us/library/ms178195.aspx

    2011年12月16日 9:09
    版主