当前位置:编程学习 > C#/ASP.NET >>

.net 会话标识未更新

大家好!如题,客户用ibm app扫描工具扫描出我的软件有会话标识未更新的漏洞,让我们尽快解决,在咱们论坛看到了一些Java的解决方案,可是放到.net中不行,我在page_load里面写了清空session和cookie过期,点击按钮的时候发现sessionid发生了变化,可是这个漏洞依然存在,有没有解决过.net这类问题的朋友?这个问题困扰我快一个星期了,急求解决。先谢过了。
 protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(System.Web.HttpContext.Current.Session.SessionID);
        Response.Write("<br />");
        Response.Cookies.Add(new System.Web.HttpCookie("ASP.NET_SessionId", ""));
        Response.Cookies["ASP.NET_SessionId"].Expires = System.DateTime.Now.AddDays(0);
        System.Web.HttpContext.Current.Session.Abandon();
        Response.Write(Response.Cookies["ASP.NET_SessionId"].Value);
        Response.SetCookie(Response.Cookies["ASP.NET_SessionId"]);
        Response.Write("<br />");
        Response.Write(System.Web.HttpContext.Current.Session.SessionID);
        Response.Write("<br />");
     }
    protected void Button1_Click(object sender, EventArgs e)
    {
       
    } --------------------编程问答-------------------- 怎么没有人回复呢?是不是没有人碰见过呢,我这样处理了还是不行,请高手帮忙啊
1:欲达到的效果:登陆前打印出Session.sessionid,登陆后也打印sessionid,看两者是否一致

2:首先我在登陆页面page_load里面添加如下代码:

Session.Abandon();

 Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));//在网上查到给cookie赋空值可以更好的设置cookie过期,同样我也试过直接设置过期的方式

3:由于我的主界面是html的框架并且我的整个程序没有用到session,如果我在登陆成功后直接跳转到主页面后每个子页面打印出来的sessionid(session.sessionid) 是不一致的,本来想着应该已经改变了sessionid,于是进行测试,问题还是没有通过;之后想着可能是登陆后只能有一个sessionid才会测试通过,于是我又加了中间页面,在中间页面的page_load中加入session["a"]="a",在跳转到主页面时发现登陆后的sessionid是一致的,测试后发现仍然有问题。

4:补充:

在该系统中没有添加应用程序类Global.asax,使用的是默认会话保存方式,我试过禁用cookie和在登陆页中设置禁用会话标识也没有用,请高手指点一下,谢谢了,在线等待,急求高手协助解决。 --------------------编程问答-------------------- 在.net里面没有找到解决方法,最后利用一个星期的时间用java写了个简单的比较类似的系统,在java里面很好解决,用户检查通过了又换成.net的了。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,