8

我正在寻找一个简单的英语“傻瓜”解释 JSESSIONID 如何从安全方面工作

  • 只知道我当前 JSESSIONID 的人可以模拟/劫持我的会话吗?
  • 在什么情况下 JSESSIONID 将成为 URL 的一部分,这个OWASP #2 安全风险(场景 #1)是否仍然与最新版本的 Tomcat / Glassfish 相关,如果是,如何“关闭/打开”以防止它?
4

1 回答 1

14

问:只知道我当前 JSESSIONID 的人可以冒充/劫持我的会话吗?

答:是的。

这就是为什么您的网站小心使用 cookie 很重要的原因。事实上,如果您担心数据包嗅探,这意味着您应该只在通过 HTTPS 连接1发出请求时发送会话 cookie 。设置“httpOnly”标志可以通过阻止客户端 javascript 等使用 cookie 来帮助解决问题。

问:在什么情况下 JSESSIONID 会成为 URL 的一部分

答:通常,当网络服务器(在容器级别)将会话令牌放入 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 - 这假设您已修补(等)您的网络服务器以解决已知的 SSL 端点漏洞。否则,您的 HTTPS 连接可能不安全。

于 2012-05-07T04:07:04.620 回答