有人只知道我当前的JSESSIONID冒充/劫持我的会话(Tomcat 7 / Glassfish 3.2))吗?
我正在寻找一个简单的英语,“for dummies”解释JSESSIONID如何从安全方面工作
- 只知道我当前的JSESSIONID的人是否可以冒充/劫持我的会话?
- 在什么情况下,JSESSIONID将成为URL的一部分,并且这个OWASP#2安全风险 (场景#1)仍然与最新版本的Tomcat / Glassfish相关,如果是,那么“关闭/打开”以防止它?
问:仅仅知道我当前的JSESSIONID的人是否可以冒充/劫持我的会话?
答:是的。
这就是为什么您的网站小心使用cookie非常重要。 实际上,如果您担心数据包嗅探,这意味着您只应在通过HTTPS连接1发送请求时发送会话cookie。 设置’httpOnly’标志可以通过阻止客户端javascript等来使用cookie来帮助解决问题。
问:在什么情况下,JSESSIONID将成为URL的一部分
答:通常,当Web服务器(在容器级别)将会话令牌放入URL时会发生这种情况:
- 作为用户浏览器不设置cookie的解决方法,或
- 使URL“适合”用于书签或通过电子邮件发送给其他人。
显然,这是不安全和“不良做法”……虽然短暂的会话超时确实会缓解这种情况。 (或者,它可以通过HTTPS …只要用户不与其他人共享URL 1。 )
对于Tomcat 6.x,我认为阻止容器(永远)将会话ID添加到URL的方法是将disableURLRewriting="false"
属性添加到上下文中。
对于Tomcat 7:
Context.disableURLRewriting:已删除。 通过在Web应用程序或全局CATALINA_BASE / conf / web.xml文件中配置session-config / tracking-mode元素,可以获得等效的效果。
1 – 这假设您已修补(等)您的Web服务器以解决已知的SSL端点漏洞。 如果没有,您的HTTPS连接可能不安全。