会话的创建

会话的创建

    HttpSession对象提供了一个isNew()方法,使用该方法时应当小心。确定用

户是否以及拥有一个会话的最好的办法时获得当前会话。如果没有会话存在,那

么可以强迫用户登录。只有在成功登陆之后,才能创建一个新的会话对象。这个

顺序是一个好的实践,因为它能防止用户避开安全机制。
    可以通过调用方法getSession(false)获得会话对象。如果用户没有会话,那

么该方法返回null。然后,可以强迫用户在每次开始一个新会话之前进行登录。

在这种情况下,当getSesion(false)返回null时,将客户端浏览器重定向到web应

用程序的登录页面。如果用户已经有一个会话,或者getSession(false)方法返回

的值不是null,那么可以继续使用该会话。
    HttpSession session = request.getSesion(false);
    if (session == null){
        response.sendRedirect("login.jsp");
    }
   你可能会试图执行一下操作:
    HttpSession session = request.getSession(true);
    if (sesion.isNew()){
 response.sendRedirect("login.jsp");
    }
   不要这样做。
   在该代码中,我们像往常一样请求会话对象。然而,因为我们在getSession()

方法中将参数值设为了true,所以如果没有会话存在,那么服务器将创建一个新

会话。尽管该代码这样做似乎是正确的,但它实际上引入了一个安全性问题。一

些人可以通过重复请求url来创建大量会话对象。这些会话是作为内存堆积在每条

请求的服务器上的,因此,攻击者可以占用大量的服务器资源。最终,攻击者会

使服务器变得很不稳定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章