Necesito evitar Session Fixation, un tipo particular de secuestro de sesión, en una aplicación web Java que se ejecuta en JBoss. Sin embargo, parece que la expresión estándar doesn't work in JBoss. ¿Se puede solucionar esto?Resolviendo la fijación de sesión en JBoss
Respuesta
This defect (encontrado here) señala el camino hacia la solución. La instancia de Tomcat que se ejecuta en JBoss se configura con emptySessionPath = "true", en lugar de "false", que es el valor predeterminado. Esto se puede modificar en .../deploy/jboss-web.deployer/server.xml
; ambos conectores HTTP y AJP tienen esta opción.
La función en sí se utiliza para eliminar la ruta de contexto (por ejemplo, "foo" en http://example.com/foo) para que no se incluya en la cookie JSESSIONID. Establecerlo en falso romperá las aplicaciones que se basan en la autenticación de aplicaciones cruzadas, que incluye elementos creados con algunos marcos de portal. Sin embargo, no afectó negativamente a la aplicación en cuestión.
Este problema y el caso específico en el que se produce es un problema tanto en Tomcat como en JBoss. Tomcat comparte el efecto emptySessionPath = "true" (y en realidad JBoss lo hereda de Tomcat).
Esto realmente parece un error en Tomcat y JBoss cuando se está tratando de prevenir los ataques de fijación de sesión, pero la especificación servlet (al menos la versión 2.3) en realidad no requiere la JSESSIONID a ser definido o redefinido de acuerdo con cualquier lógica específica. Quizás esto se haya limpiado en versiones posteriores.
Una solución consiste en almacenar la dirección del cliente en la sesión. Un contenedor de respuestas debe validar que la dirección del cliente configurada en la sesión sea la misma que la que accede a la sesión.
Su sugerencia es útil para el secuestro de sesión en general, pero no aborda la fijación de sesiones específicamente. –
Vine a conocer el fragmento de configuración de código a continuación de uno de los cuatro. Y agregué líneas debajo. Pero cuando imprimo la ID de la sesión después de iniciar sesión en la aplicación, es lo mismo. ¿Cómo probaría la fijación de la sesión?
D: \ jboss-5.1.0.GA \ bin \ run.cof y agregue la siguiente línea. set "JAVA_OPTS =% JAVA_OPTS% -Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK = false"
en cada context.xml de las aplicaciones JBoss. D: \ jboss-5.1.0.GA \ server \ default \ deploy \ jbossweb.sar \ context.xml
- 1. Fijación de Sesión en ASP.NET
- 2. Fijación de sesión - Autenticación de formulario
- 3. Resolviendo la mochila entera
- 4. Qt fijación de precios (la más actualizada)
- 5. Ataque de fijación de sesión simple en localhost con fines de prueba
- 6. Resolviendo conflicto en git
- 7. Fijación de muelles @ Cuerpo de solicitud
- 8. Resolviendo ecuaciones en .NET
- 9. fijación MacPorts rota
- 10. Fijación de una matriz vacía
- 11. Fijación de GPS más rápida en Android
- 12. Manejo de 'sesión expiró' en la aplicación web JSF, ejecutándose en JBoss AS 5
- 13. Resolviendo conflicto de árbol
- 14. Resolviendo ecuaciones polinomiales en Python
- 15. Fijación del posicionamiento absoluto en Android
- 16. JBoss Session Timeout
- 17. Problema con la característica de seguridad de sesión de JBoss 6 usando servlet 3.0
- 18. Como llegar SessionContext en JBOSS
- 19. Resolviendo conflictos Git Svn
- 20. Resolviendo recursos protegidos con Flying Saucer (ITextRenderer)
- 21. resolviendo conflictos simples svn
- 22. Resolviendo una ecuación lineal
- 23. Vale la pena actualizar a JBoss 7.1 desde JBoss 5.1
- 24. Resolviendo sistemas lineales de ecuaciones
- 25. Resolviendo sistemas de ecuaciones en R
- 26. métodos Fijación al prototipo dentro de la función constructor
- 27. Resolviendo las dependencias de maven
- 28. prólogo: la fijación de respuestas múltiples (usando corte?)
- 29. Color de fijación en diagramas de dispersión en matplotlib
- 30. ¿JBoss almacena en caché la información de autenticación?
estoy trabajando con JBoss 6.1 y simplemente pulse este problema. No hay una opción emptySessionPath en mi servidor.xml. Entonces, ¿cómo se puede hacer esto para la versión 6.1? –
Si alguien más está interesado, encontré una solución. Busque la respuesta de @ Rp- en este hilo: http://stackoverflow.com/questions/11028145/listening-for-login-events-in-jboss-as-6 –