Chrome 并且 Firefox 未清除 JSESSIONID cookie 导致重定向循环
Chrome and Firefox not clearing JSESSIONID cookie causes a redirect loop
我有一个应用程序在 Apache Web 服务器上接收 HTTP/HTTPs 请求并将其传递给 tomcat。
最近,在 一些用户之后,我在 Google Chrome 和 Firefox 浏览器上遇到了会话和重定向循环问题注销 会话到期。我设法追查问题并发现浏览器没有清除 JSESSIONID cookie。手动清除后,它又开始工作了。
我检查了 Apache Web 服务器的日志文件,我发现了这个:
172.16.254.157 - - [06/Feb/2017:05:23:27 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:29 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:29 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:29 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:30 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:30 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:30 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:31 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:31 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:31 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:32 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:32 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:32 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:33 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:33 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:33 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:34 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:34 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:34 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:35 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:35 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
122.176.45.206 - - [06/Feb/2017:05:24:33 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
Apache 服务器正在接收这些请求,但没有任何内容被转发到 Tomcat。
Chrome 的 检查元素 window 的网络选项卡向我显示了以下内容:
但这在我清除 JSESSIONID cookie 后有效。
这很奇怪,但是这个问题大约在一周前开始(该应用程序自过去 4 年以来一直在运行!),并且与新 update rollout.
重合
我尝试使用谷歌搜索,发现人们在 2012 年和 15 年遇到过类似的问题。
Chrome真的有什么问题吗?互联网标准在改变吗?尽管如此,我该如何解决这个问题?
编辑:
1.问题仅存在于 Google Chrome.
编辑#2:
- 问题也出现在 Mozilla Firefox 上。
如果您仔细查看您的流量,它似乎在 http 和 https 之间交替。
两个猜测:
(a) 存在对您不利的重定向规则,例如有人认为 auto-redirect http 到 https 是个好主意,但不使用 HSTS。
(b) 该站点正在设置安全 cookie,但随后重定向到 non-secure 端点,因此不会显示该 cookie;该网站将您重定向回登录页面(因为您看起来没有经过身份验证),然后作为会话固定缓解措施的一部分丢弃 cookie。
或者 (c) 上述两个问题相互作用导致了该行为。
我有一个应用程序在 Apache Web 服务器上接收 HTTP/HTTPs 请求并将其传递给 tomcat。
最近,在 一些用户之后,我在 Google Chrome 和 Firefox 浏览器上遇到了会话和重定向循环问题注销 会话到期。我设法追查问题并发现浏览器没有清除 JSESSIONID cookie。手动清除后,它又开始工作了。
我检查了 Apache Web 服务器的日志文件,我发现了这个:
172.16.254.157 - - [06/Feb/2017:05:23:27 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:29 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:29 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:29 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:30 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:30 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:30 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:31 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:31 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:31 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:32 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:32 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:32 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:33 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:33 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:33 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:34 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:34 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:34 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:35 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
172.16.254.157 - - [06/Feb/2017:05:23:35 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
122.176.45.206 - - [06/Feb/2017:05:24:33 -0600] "GET /preview/login.admin HTTP/1.1" 302 20
Apache 服务器正在接收这些请求,但没有任何内容被转发到 Tomcat。
Chrome 的 检查元素 window 的网络选项卡向我显示了以下内容:
但这在我清除 JSESSIONID cookie 后有效。
这很奇怪,但是这个问题大约在一周前开始(该应用程序自过去 4 年以来一直在运行!),并且与新 update rollout.
重合我尝试使用谷歌搜索,发现人们在 2012 年和 15 年遇到过类似的问题。
Chrome真的有什么问题吗?互联网标准在改变吗?尽管如此,我该如何解决这个问题?
编辑:
1.问题仅存在于 Google Chrome.
编辑#2:
- 问题也出现在 Mozilla Firefox 上。
如果您仔细查看您的流量,它似乎在 http 和 https 之间交替。
两个猜测:
(a) 存在对您不利的重定向规则,例如有人认为 auto-redirect http 到 https 是个好主意,但不使用 HSTS。
(b) 该站点正在设置安全 cookie,但随后重定向到 non-secure 端点,因此不会显示该 cookie;该网站将您重定向回登录页面(因为您看起来没有经过身份验证),然后作为会话固定缓解措施的一部分丢弃 cookie。
或者 (c) 上述两个问题相互作用导致了该行为。