我正在寻找一个简单的英语“傻瓜”解释 JSESSIONID 如何从安全方面工作
- 只知道我当前 JSESSIONID 的人可以模拟/劫持我的会话吗?
- 在什么情况下 JSESSIONID 将成为 URL 的一部分,这个OWASP #2 安全风险(场景 #1)是否仍然与最新版本的 Tomcat / Glassfish 相关,如果是,如何“关闭/打开”以防止它?
我正在寻找一个简单的英语“傻瓜”解释 JSESSIONID 如何从安全方面工作
问:只知道我当前 JSESSIONID 的人可以冒充/劫持我的会话吗?
答:是的。
这就是为什么您的网站小心使用 cookie 很重要的原因。事实上,如果您担心数据包嗅探,这意味着您应该只在通过 HTTPS 连接1发出请求时发送会话 cookie 。设置“httpOnly”标志可以通过阻止客户端 javascript 等使用 cookie 来帮助解决问题。
问:在什么情况下 JSESSIONID 会成为 URL 的一部分
答:通常,当网络服务器(在容器级别)将会话令牌放入 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 连接可能不安全。