nueva new instalar cuenta create crear appleid apple java session servlets

java - new - httpservletrequest-crear nueva sesión/cambiar ID de sesión



itunes id (2)

Desde Java EE 7 y Servlet API 3.1 (Tomcat 8) puede usar HttpServletRequest.changeSessionId() para lograr dicho comportamiento. También hay un oyente HttpSessionIdListener que se invocará después de cada cambio.

Estoy manteniendo una aplicación web Java.

Al examinar el código de inicio de sesión, obtiene una HttpSession de HttpServletRequest a través del método getSession () de HttpServletRequest. (Utiliza algunos valores en la sesión para fines de autenticación)

Sin embargo, estoy preocupado por los ataques de fijación de sesión, así que después de haber utilizado la sesión inicial quiero iniciar una nueva sesión o cambiar la identificación de la sesión. es posible?


La API de Servlet 3.0 no le permite cambiar la identificación de la sesión en una sesión existente. Por lo general, para protegerse contra la fijación de sesiones, querrá simplemente crear uno nuevo e invalidar el anterior también.

Puede invalidar una sesión como esta

request.getSession(false).invalidate();

y luego crea una nueva sesión con

getSession(true) ( getSession() debería funcionar también)

Obviamente, si tiene datos en la sesión que desea conservar, deberá copiarlos desde la primera sesión hasta la segunda sesión.

Tenga en cuenta que, para la protección de la fijación de sesión, comúnmente se considera que es correcto hacer esto en la solicitud de autenticación. Pero un mayor nivel de seguridad implica lanzar la sesión anterior y hacer una nueva sesión para cada solicitud.