Joven hacker sonriendo

Hackeamos su software

cero falsos positivos

Inteligencia experta + automatización eficaz

Almacenar Estado de Sesión en Capa Web con Servlets

Nuestros ethical hackers explican cómo evitar vulnerabilidades de seguridad mediante la programación segura en Java al almacenar el estado de sesión utilizando Servlets. Las sesiones son frecuentemente utilizadas ya que permiten guardar información accesible en diferentes páginas web.

Necesidad

Almacenar estado de sesión en la capa web con Servlets.

Contexto

A continuación se describen las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. Se dispone de una aplicación web construida acorde al estándar empresarial de Java o JEE.

  2. Se dispone de un servidor de aplicaciones el cual soporta el estándar empresarial de Java.

  3. Se requiere evitar el envió de información entre páginas a través de parámetros de la URL.

  4. Se conoce como hacer una aplicación usando Servlets.

Solución

La conexión que se establece entre un usuario y un servidor Web se denomina sesión. Las sesiones permiten almacenar información a lo largo de diferentes páginas, permitiendo acceder a ella en el momento que se requiera. Dentro de las sesiones es posible guardar cierta información la primera vez que el usuario visita la página, y dicha información puede ser mostrada en una visita posterior sin necesidad de interactuar con una base de datos o un archivo externo. Como estas sesiones son manejadas por lado del servidor, no se corre el riesgo de que el usuario las pueda alterar. Por lo general, dicha información contiene los datos del usuario, y el estado de las diferentes operaciones que el usuario realiza en la aplicación. En otras palabras, una sesión puede abarcar múltiples páginas Web y su seguimiento se realizará mediante la administración del estado sin que el usuario tenga que intervenir en ello.

La administración del estado es el proceso por el cual se mantiene la misma información a través de múltiples peticiones para las mismas o distintas páginas web.

En esta solución se explorará la manera de almacenar el estado de una sesión usando Servlets.

  1. Lo primero que hay que hacer es recuperar una sesión existente.

    sesion.java
    1
    2
    HttpSession session = request.getSession();
    HttpSession session = request.getSession(false);
    
  2. En caso de que la sesión aún no exista, esta se debe de crear.

    1
    2
    HttpSession session = request.getSession();
    HttpSession session = request.getSession(true);
    
  3. Una vez recuperada o creada la sesión, es posible ingresar la información que se requiere que persista a través de todas las páginas de la aplicación.

  4. Lo anterior se hace usando session.setAttribute.

    1
    2
    String par1 = request.getParameter("par1");
    session.setAttribute("par1", par1);
    
  5. Es posible recuperar la información en cualquier momento, siempre que la sesión permanezca activa.

  6. Se debe usar session.getAttribute para recuperar la información.

    1
    String par1 = session.getAttribute("par1");
    
  7. Por último, una vez se termina de trabajar con la sesión esta debe ser destruida

    1
    session.invalidate();
    



Haz un comentario

Estado de los servicios - Términos de Uso