【问题标题】:Chrome and Firefox not clearing JSESSIONID cookie causes a redirect loopChrome 和 Firefox 未清除 JSESSIONID cookie 会导致重定向循环
【发布时间】:2017-06-23 08:38:07
【问题描述】:

我有一个应用程序在 Apache Web 服务器上接收 HTTP/HTTPS 请求并将其传递给 tomcat。

最近,在一些用户退出会话到期后,我一直在 Google Chrome 和 Firefox 浏览器上遇到会话和重定向循环问题。我设法追查问题,发现浏览器没有清除 JSESSIONID cookie。手动清除后,它又开始工作了。

我检查了 Apache Web Server 的日志文件,发现:

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 的 inspect element 窗口的网络选项卡向我显示:

但这在我清除 JSESSIONID cookie 后有效。


这很奇怪,但这个问题大约是在一周前开始的(该应用程序自过去 4 年以来一直在工作!),这与新的 update rollout 不谋而合。

我尝试用谷歌搜索,发现人们在 2012 年和 15 年也有类似的问题。

Chrome 真的有问题吗? 互联网标准正在改变吗?但是,我该如何解决这个问题?


编辑:

1.问题仅在于 Google Chrome。


编辑#2:

  1. 问题也始于 Mozilla Firefox。

【问题讨论】:

    标签: google-chrome firefox redirect cookies jsessionid


    【解决方案1】:

    如果您仔细查看您的流量,它似乎在 http 和 https 之间交替。

    两种猜测:

    (a) 有一个重定向规则对您不利,例如有人认为将 http 自动重定向到 https 是个好主意,但不使用 HSTS。

    (b) 站点设置了安全 cookie,但之后重定向到非安全端点,因此不显示 cookie;该网站将您重定向回登录页面(因为您看起来没有经过身份验证),然后作为会话固定缓解的一部分删除 cookie。

    或者 (c) 上述两个问题相互作用导致该行为。

    【讨论】:

    • 这有帮助。谢谢:D
    • 那么,应该如何解决这个问题?我有同样的问题,并得到了与这个“答案”相同的结论,但解决方案在哪里?
    • 你如何解决(b)?我有类似的问题,但该应用程序不是由我开发的,并且它永远是应用程序的哪个部分导致的。
    猜你喜欢
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多