日期:2014-05-17  浏览次数:20567 次

求助:ASP.net的系统,“会话标识未更新”高危漏洞
在登陆页面的Page_Load事件里加入了如下代码:
if (!IsPostBack)
  {
  Session.Abandon();
  Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
  }
结果登陆页面就不起作用了,是什么原因?
请问有什么解决这个高危漏洞的方法?最好给出代码示例

------解决方案--------------------
HTML code
<form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
        <asp:Button ID="btnLogin" runat="server" Text="登录" onclick="btnLogin_Click" />
    </div>
    </form>

------解决方案--------------------
有Session.Abandon()的话页面都不能用了

这个是矛盾的,你使用Session的话,就不能避免这个问题,因为如果没次你的SEssionID都变化的话,那么Session的内容你就永远得不到的。
因此,你可以改用Cookie而不是使用Session