微信网页版,在时间设置错误时,自动退出

2018-12-24 08:46:21 +08:00
 wwjvtwoex
无意中将系统的时区设置为 EST,比北京时间晚了 13 个小时,扫码登录网页版时闪退。
这是 Bug 还是 Feature,是不是应该有个提示?
3398 次点击
所在节点    全球工单系统
13 条回复
masker
2018-12-24 09:01:48 +08:00
没毛病。为什么要给提示。
honeycomb
2018-12-24 09:09:14 +08:00
按照浏览器的实践,它是可以不做提醒。
如果时间不同(这里指本地和服务器的 UTC 时间不同),那浏览器无法和网站建立 HTTPS 连接,如果是启用了 HTTPS captive portal 探测功能的 Android 设备,也会出现无法连接网络的故障
BOYPT
2018-12-24 10:20:25 +08:00
如果是 HTTPS 握手的话,时区不同不会认为是时间差异的,如果是代码读取的 local 时间私有协议握手出错,那确实是 bug
laoyur
2018-12-24 10:22:10 +08:00
@honeycomb 「如果时间不同(这里指本地和服务器的 UTC 时间不同),那浏览器无法和网站建立 HTTPS 连接」

题主只是 13 个小时的偏差,不至于导致证书过期吧?「浏览器无法和网站建立 HTTPS 连接」这个说法具体指的是什么呢
Vegetable
2018-12-24 10:32:08 +08:00
Edge GMT -5 复现了问题,但是访问 HTTPS 并没有出现什么奇怪的问题,正常的.可能是微信某些签名算法用到了本地时间?
wwjvtwoex
2018-12-24 10:41:53 +08:00
我的问题描述得不太清楚。应该是:当前是北京时间 --24 日 8:00,因为设置成 EST 时间 24 日 8:00 相当于北京时间 24 日 21:00
honeycomb
2018-12-24 11:34:41 +08:00
@laoyur 不是过期,而是客户端察觉到本地时间和网络对面的时间有差异(比如在 Android 上大约是超过三五分钟就可以出现)而拒绝建立连接。

而微信的问题有可能是腾讯没有 catch 这个 exception,或故意如此设计。
honeycomb
2018-12-24 11:35:44 +08:00
@wwjvtwoex

@Vegetable 的想法可能更准确
laoyur
2018-12-24 11:46:23 +08:00
@honeycomb 依然无法理解。因为客户端时间不精确,就能导致 https 拒绝连接? Android 上不清楚,pc 和 iOS 都没有这种说法,至少在浏览器上。
niboy
2018-12-24 11:54:48 +08:00
或许是怕是机器人登录,加了时间限制
likuku
2018-12-24 12:18:56 +08:00
注意 #6 的描述,那么如此就是时间严重不对,当前的确很多软件和服务对 client 的时钟敏感的,客户你自己的锅,自己背吧。
honeycomb
2018-12-24 13:08:36 +08:00
@laoyur pc 上也有这种情况,比如 chrome。
它这么做的里有可能是它认为 remote 端的时钟不对,因此拒绝信任
laoyur
2018-12-24 13:20:25 +08:00
@honeycomb 亲测 Mac Chrome 默认设置,客户端时间不对的情况下,https 一切 ok,不知道你说的情况是如何复现的

也许是我孤陋寡闻了,反正你说的机制(客户端时间不精确的情况下,https 拒绝连接)我是从来没听说过,也没经历过,当然,我指的是通常的情况,自有协议的情况除外(比如这里的微信、还有某 2ray 也要求客户端服务端时间不能有太大偏差)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520318

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX