“chrome下设置cookie无效问题”——cookies时间换算bug

谷歌浏览器http协议 cookies时间换算bug

前言

最近在用cas做单点登入系统时,将系统通过域名映射到外网时发现在谷歌浏览器中cas/login登入成功后,一刷新又弹出登入界面问题。火狐和ie都是ok的。后来各种检查才发现谷歌浏览器的bug。

现象

这对这个诡异问题,通过网络映射、系统配置等情况反反复复进行确认认证。发现返回的cookies过期时间在换算的bug。直接上图说明问题:
1、在http协议下,针对ip+端口的情况下,返回的cookies过期时间;服务器端返回是格林尼治标准时间,通过谷歌浏览器是叹号安全信息提示部分查看到到过期时间和服务端返回过期时间,是不一样的是经过换算的。服务器端返回是格林尼治标准时间;客户端cookies过期时间已经换算成了GMT+8 时间了。所以在cas/login登入页面登入成功后,再次刷新就会将cookies的CASTGC参数带到服务器端,验证显示登入成功“chrome下设置cookie无效问题”——cookies时间换算bug
2、在http协议下,针对域名的情况下,返回的cookies过期时间;服务器端返回是格林尼治标准时间,通过谷歌浏览器是叹号安全信息提示部分查看到到过期时间和服务端返回过期时间,是一样的是未经过换算的。服务器端返回是格林尼治标准时间;客户端cookies过期时间本应该换算成GMT+8 时间,不过谷歌浏览器没换算,还是将格林尼治标准时间直接当做GMT+8时间显示。所以cookies是过期的状态。所以在cas/login登入页面登入成功后,再次刷新无法将cookies的CASTGC参数带到服务器端,通过不了验证就会返回登入界面,让重新登入。
“chrome下设置cookie无效问题”——cookies时间换算bug

https情况

后来检查了,好像通过https协议带证书状态就是ok。

谷歌坑爹啊

big谷歌浏览器,居然还允许这个问题的情况出现。