【发布时间】:2015-12-11 14:53:43
【问题描述】:
安全测试团队要求我们将 sessionid 长度增加到 50 个字符。
https://www.owasp.org/index.php/Insufficient_Session-ID_Length
如何在 jboss 应用服务器 EAP 6 中更改它。
【问题讨论】:
标签: java security jboss6.x sessionid jsessionid
安全测试团队要求我们将 sessionid 长度增加到 50 个字符。
https://www.owasp.org/index.php/Insufficient_Session-ID_Length
如何在 jboss 应用服务器 EAP 6 中更改它。
【问题讨论】:
标签: java security jboss6.x sessionid jsessionid
我在另一个论坛上找到了这个问题的答案。 实际上,JBoss 没有提供任何方法来覆盖 sesionid 长度。 org.jboss.web.tomcat.service.session.SessionIDGenerator 类不提供任何公共方法来修改 sessionid 长度。并且没有已知的方法可以为 jboss 提供自定义 SessionIDGenerator。
现在出路在这里,您可以通过在 jboss 配置中添加系统属性“jvmRoute”来增加 sessionid 的长度。这为 sessionid 增加了额外的价值。
对于 Jboss EAP 6 独立环境, 编辑 jboss-eap-6.2/standalone/configuration/standalone.xml 添加以下系统属性:
<system-properties>
<property name="jvmRoute" value="qU2O2h8yQ1cxI9XsPK0aHlr3p"/>
</system-properties>
【讨论】:
在 JBoss EAP 6.4.8 中添加了一个系统属性来调整会话 id 的长度。新的系统属性称为org.apache.catalina.session.ManagerBase.SESSION_ID_LENGTH。
根据新系统属性设置会话 ID 长度的行为是不直观的,因此您必须使用公式来确定您将 org.apache.catalina.session.ManagerBase.SESSION_ID_LENGTH 设置为:
((Desired-Session-ID-Length / 4) * 3) - 2
例如,如果您希望会话 ID 长度为 40:
((40 / 4) * 3) -2 = 28
你可以设置org.apache.catalina.session.ManagerBase.SESSION_ID_LENGTH=28。
注意:此解决方案适用于 JBoss EAP 6.4.8 及更高版本
您可以在这里了解更多信息:https://access.redhat.com/solutions/454893
【讨论】: