portable jdk con java security servlets jsessionid session-hijacking

java - jdk - ¿Alguien que simplemente conozca mi JSESSIONID actual puede suplantar/secuestrar mi sesión(Tomcat 7/Glassfish 3.2)?



jdk portable (1)

P: ¿Alguien que simplemente sabe que mi actual JSESSIONID se hace pasar por mi sesión?

A: Sí.

Es por eso que es importante que su sitio tenga cuidado con las cookies. De hecho, si le preocupa el rastreo de paquetes, esto significa que solo debe enviar la cookie de sesión cuando la solicitud se realizó a través de una conexión HTTPS 1 . Y establecer el indicador ''httpOnly'' ayuda a evitar que javascript, etc., del lado del cliente use la cookie.

P: En qué escenarios JSESSIONID formará parte de la URL

R: Normalmente, esto sucede cuando el servidor web (en el nivel de contenedor) coloca el token de sesión en la URL:

  • como solución para que el navegador del usuario no establezca cookies, o
  • para hacer que la URL sea "adecuada" para marcar o enviar a otra persona a través de un correo electrónico.

Obviamente, esto es inseguro y una "mala práctica" ... aunque un corto tiempo de espera de la sesión tiende a mitigar esto. (Alternativamente, está bien a través de HTTPS ... siempre que el usuario no comparta la URL con otras personas 1 ).

Para Tomcat 6.x, creo que la manera de evitar que el contenedor (siempre) agregue el ID de la sesión a la URL es agregar el disableURLRewriting="false" al contexto.

Para Tomcat 7:

Context.disableURLRewriting: esto ha sido eliminado. Se puede obtener un efecto equivalente configurando los elementos session-config / tracking-mode en una aplicación web o en el archivo global CATALINA_BASE / conf / web.xml.

1 - Esto supone que ha parcheado (etc.) su servidor web para abordar las vulnerabilidades conocidas del punto final SSL. De lo contrario, sus conexiones HTTPS pueden ser inseguras.

Estoy buscando una explicación sencilla de inglés, "para tontos" de cómo funciona JSESSIONID desde aspectos de seguridad

  • ¿Alguien que simplemente sabe que mi actual JSESSIONID se hace pasar por mi sesión?
  • ¿En qué escenarios JSESSIONID formará parte de la URL, y este riesgo de seguridad OWASP # 2 (escenario # 1) sigue siendo relevante para las últimas versiones de Tomcat / Glassfish y, de ser así, qué "activar / desactivar" para evitarlo?