解决JBoss中的会话修复

时间:2020-03-05 18:39:03  来源:igfitidea点击:

我需要防止在JBoss中运行的Java Web应用程序中使用Session Fixation(会话劫持的一种特殊类型)。但是,似乎标准习语在JBoss中不起作用。可以解决这个问题吗?

解决方案

回答

此缺陷(在此处找到)为解决方案指明了道路。在JBoss中运行的Tomcat实例配置为emptySessionPath =" true",而不是默认值为" false"。可以在... / deploy / jboss-web.deployer / server.xml中进行修改; HTTP和AJP连接器都具有此选项。

该功能本身用于消除上下文路径(例如,http://example.com/foo中的" foo"),使其不包含在JSESSIONID cookie中。将其设置为false将破坏依赖跨应用程序身份验证的应用程序,其中包括使用某些门户框架构建的内容。但是,它并没有负面影响所涉及的应用程序。

回答

此问题以及发生此问题的特定情况在Tomcat和JBoss中都是一个问题。 Tomcat共享emptySessionPath =" true"效果(实际上JBoss从Tomcat继承了它)。

当我们尝试防止会话固定攻击时,这似乎确实是Tomcat和JBoss中的错误,但是servlet规范(至少是2.3版)实际上并不需要根据任何特定逻辑来定义或者重新定义JSESSIONID。也许在更高版本中已将其清除。