情况是这样的:
在某实体店买了一张会员卡,被告知可以领礼包,于是下载 app 领取,这个包有效期是到今年的 3 月 31 日。
后来在实体店扫码,想换取该 app 的礼包,后来一直没有办法领取,店员也不知道什么原因,让明天再来。
于是第二次又来到同一家店,店员试了又不行,让我拨打客服,但是当时客服下班了。
于是我第三天又拨打客服电话,被告知需要错误码,但是这个错误码是店员需要提供的,
我当时没有,店员也没和我说,于是我只能当天再跑一次。
第三次跑到店里,被告知了错误码,打给客服,原因竟然是说因为我手机的时间不是北京时间,所以无法兑换。
我就很无语,因为个人原因,没有手表,所以我手机时间我自己比北京时间调快了 10 分钟,便于生活。
这个礼包如果兑换一次也就算了,
但这个礼包是可以多次兑换的,我如果每次兑换都需要调整自己的手机时间的话,兑换完之后又要再调回来,
我觉得对我而言,还是比较麻烦的,万一哪天没调回来,可能就会影响我的生活,比如说公司迟到之类的。。
事情表述完了,最后客服的官方理由是说他们 app 给予的范围只能是 5 分钟之内, 10 分钟据客服所说误差太大了。。
我是真的搞不懂,兑换日期还有那么多天,为什么偏偏超过 5 分钟就不行了呢?
这个我觉得很不合理啊。。
当然可能像我这样调快手机时间的不多,但是不代表不存在啊,大家如何看待?
还是说觉得这是我本身的问题?
![]() | 1 jtam 2017-02-09 10:29:48 +08:00 ![]() 确实是你的问题,楼下继续。 |
2 tghgffdgd 2017-02-09 10:32:50 +08:00 这里面包含校验吧,随着时间变动码就发生变动了。你自己都说这个礼包是可以多次兑换的。我觉得那更应该这样。 |
![]() | 3 ven 2017-02-09 10:34:01 +08:00 我觉得挺合理的,用时间来避免一些异常无可厚非。 |
![]() | 4 sharkli 2017-02-09 10:35:08 +08:00 你的问题 |
5 whitenight 2017-02-09 10:35:47 +08:00 ![]() 什么人会把时间调到比标准时间快,然后一直这样生活。。。。 |
![]() | 6 jmc891205 2017-02-09 10:39:22 +08:00 肯定要校验时间咯 否则你今天领完了 把手机时间调到明天再领一份怎么办? |
![]() | 7 stargazer242 2017-02-09 10:52:38 +08:00 好奇什么礼物 让你这么动心 |
8 nomorelie 2017-02-09 10:59:20 +08:00 via Android 这样想,过了有效期把时间往前调是不是还能领,肯定不可以啊,所以要校准 |
![]() | 9 hws8033856 2017-02-09 11:01:57 +08:00 楼上说校验的,这个需求有必要校验客户端时间么? |
11 william23 OP @stargazer242 哈哈,也不是礼物很好啦,只是应该得到的为什么不拿呢 |
12 william23 OP @tghgffdgd 但是这个礼物在我的礼包里一共只有 5 站个,兑换了就没有了,不是只要看是不是在 3 月 31 日之前就好了吗? |
![]() | 13 hws8033856 2017-02-09 11:04:26 +08:00 不应该是校验提交请求时的服务端时间就完事了么? |
![]() | 14 grimpil 2017-02-09 11:05:28 +08:00 via Android 在客户端校验时间靠谱吗 |
15 william23 OP @hws8033856 我也觉得啊,服务器端校验,只要小于这个时间就好了嘛,为什么和我的客户端有关系呢? |
17 william23 OP @whitenight 主要是让生活可以有预留的空间,比如说一些突发事故,可以让这个 10 分钟有价值,即使让自己的生活少 10 分钟,也尽量不耽误别人的时间 |
18 laoyur 2017-02-09 11:11:55 +08:00 开发人员防止修改本地时间来多次领取之类,但他显然过于简单粗暴了,如果设计周全的话根本无需本地时间校验的 再说楼主,一直生活在快 10 分钟的时空中也是挺奇怪的 |
![]() | 19 tSQghkfhTtQt9mtd 2017-02-09 11:12:01 +08:00 有可能是为了防止爆破之类的在客户端有相关信息摘要生成机制 参考 Hash-based Message Authentication Code |
![]() | 20 tSQghkfhTtQt9mtd 2017-02-09 11:13:03 +08:00 @liwanglin12 #19 抱歉应该是 Time-based One-time Password Algorithm ,虽然这个似乎是 HMAC 的子集( |
![]() | 21 swulling 2017-02-09 11:13:05 +08:00 via iPhone 你的问题,下一题 |
![]() | 22 iamzhuyi 2017-02-09 11:21:52 +08:00 ![]() 无法理解把表调前 10 分钟 |
![]() | 23 dallaslu 2017-02-09 11:29:23 +08:00 ![]() 建议你把手机调整成标准时间,然后增加一个东京时钟,按东京时间来生活。 |
26 william23 OP |
![]() | 27 ryd994 2017-02-09 11:48:06 +0800 via Android 其实你不调时间,而是往前跳一个时区的话就没事了 |
![]() | 28 imn1 2017-02-09 11:51:55 +08:00 无论什么礼品,请一律参考月饼 人家月饼也不可以重复领取啊,不也照样开了 即使程序有问题,也要你负责,因为这是价值观(道德)问题 |
![]() | 29 sharkli 2017-02-09 12:08:11 +08:00 ![]() 楼主 很多 app 请求里面会加校验,获取当前时间,按一定算法加密生成校验值,服务器收到以后会校验是否对应,也会校验这个时间和服务器时间的差值。如果不校验差值,可能有人抓包直接重复刷请求了。 |
![]() | 30 dot 2017-02-09 12:12:34 +08:00 你的问题。 有一些验证是基于时间的,这个跟程序有关,误差太大玩完。 个人喜欢用 OTP ……误差几十秒都不行…… 再说了,标准时间就一个,你要活在世界前面的话……对现在的电子设备是个艰巨的考验。 |
![]() | 31 swulling 2017-02-09 12:13:48 +08:00 via iPhone |
32 debiann 2017-02-09 12:14:46 +08:00 via iPhone ![]() 依靠调时间来预留时间只是自欺欺人 |
![]() | 34 learnshare 2017-02-09 12:18:38 +08:00 via Android 时间的校验是服务器做的,客户端时间无所谓的吧 |
36 just4test 2017-02-09 12:47:26 +08:00 楼上说防止客户端改时间重复领取的都是扯淡。 为了做验证,客户端和服务端的通讯带上时间戳是很正常的做法。比如,支付宝扫码付款的二维码是可以离线生成的,这个付款码中就带有时间信息。在离线状态下修改时间,生成的付款码就不可用了(理论上是,没有实践过) 说楼主是瞎杰宝折腾也好,自欺欺人也好,特立独行也好,开发者是没有义务为你这种情况做兼容的。 另外,同意 32 楼的说法,这种做法是自欺欺人。 |
![]() | 37 Felldeadbird 2017-02-09 13:05:14 +08:00 这个时间应该依赖服务器而不是本地。如果是这样的话,搞抢购活动的乐呵呵了。 |
![]() | 41 quxiangxuanqxx 2017-02-09 13:31:49 +08:00 你的问题,要是我, 5 分钟的误差都不留。 时间就是标准,要么我把所有的时间调快,要么就按标准来,不然实时同步全得玩完 |
42 william23 OP @swulling 设计的漏洞怎么变成添麻烦了啊? 调整时间是很开放的事情,我既然买了卡,出了钱,那我应当享受这个服务,因为是你在赚我的钱,你这样增加了我的麻烦,我就要强行地去调整手机时间还要再调整回来,这个需求很合理啊,而且他们在这问题上做法是一直有欠考虑的,我光这个问题已经去了 3 次。。 |
![]() | 43 AlexaZhou 2017-02-09 13:35:50 +08:00 ![]() @william23 1 ,把时间调快,或者调慢这是每个人的自由,完全可以这么做 2 ,此 app 应该是实现的原因么,没有考虑本地时间不一致的情况,当然他也可以不考虑这个种情况,是没问题的 3 ,如果选择把时间调快,就要接受相关的一些后果,比如某些 app 的不兼容问题,毕竟都是自己的选择嘛 |
44 william23 OP @just4test 你说的很对,但是你说的只是这个情况,我这个情况是实体店领取,场景不一样啊。 这个我觉得是产品的问题,并不是说开发的问题。 另外你说自欺欺人,那拿手表调快时间的都是自欺欺人了? 我只是用手机的时钟代替手表功能而已,这样也有错? |
45 william23 OP @quxiangxuanqxx 是这样没错,但是只要我的时间在 31 号之前你就得给我兑换的东西,你说的这个适合对时间更加严格的场景,而不是针对我这个情况吧? |
![]() | 46 Refac 2017-02-09 13:42:46 +08:00 ![]() 都没问题,权衡下利弊就行了。 |
47 william23 OP @AlexaZhou 恩,你说的话还是比较公正的 我也是第一次碰到这样的问题,但是我觉得他们的这个处理方法还是很欠缺,毕竟我跑了 3 次,如果店员直接第一次就和我说,我也就改了,并不是很难的事情,问题就在于反复这样做了 3 次,那是个顾客都会有情绪啊,更何况是顾客和商店都没错的情况下。 |
![]() | 48 wclebb 2017-02-09 13:47:13 +08:00 Apple Watch 有调快或慢的功能。 以及这功能貌似是独享。 |
![]() | 49 goodryb 2017-02-09 13:58:37 +08:00 从楼主提出这个问题来看,应该不是程序员吧 礼包本身有效期和你领取礼包时 APP 发送请求的有效时间是完全两码事情 举个简单例子,大概表述一下,你要去银行办一张卡,要求是 3 月 31 号之前可以办理,然后你每次都是周日去,银行不上班,然后你就开始抱怨了,说的是 3 月 31 号,还没到这个时间,为啥不能办理 |
![]() | 50 VinKing 2017-02-09 14:02:14 +08:00 ![]() 从程序员的角度来说,楼主这样确实不合理。 不过,从用户(楼主)角度来说,这个 APP 这样设计确实会有问题。 哈哈哈,突然觉得这个问题很有趣。 |
![]() | 51 AlexaZhou 2017-02-09 14:03:05 +08:00 |
![]() | 52 ven 2017-02-09 14:13:39 +08:00 产品肯定是根据大众需求来设计的,增加时间的校验肯定也是有原因,例如防止第三方缓存页面等等~ 楼主的习惯感觉很少见,产品覆盖不到也很正常,大众产品就是这样~ 我觉得将心比心吧~如果你一个特殊的需求他一个特殊的需求,这个产品永远都改不完~ |
53 william23 OP |
56 william23 OP |
57 william23 OP @goodryb 对啊,我没说标准时间不对啊,我是时间偏差,但是日期没有偏差啊,你说我搞特殊,也是因为手机允许我这么做,既然允许,那就正常的,并没有你所谓的搞特殊 |
58 william23 OP @goodryb 我是觉得你是作为 app 开发者来看待的问题,如果你站在用户的立场,你碰到了这样一件事,你会怎么想? |
![]() | 59 Rice 2017-02-09 14:38:14 +08:00 via iPhone 确实是你的问题 |
![]() | 60 goodryb 2017-02-09 14:40:12 +08:00 ![]() @william23 #58 手机允许你调整时间,那么作为 app 开发者也可以拒绝服务 从开发者角度来说,为了防止重复领取或者盗刷的可能,需要客户端和服务器端都是用标准时间,如果时间校验不通过,有理由相信存在风险,所以领取失败,这是一个正常的流程。 在时间这个属性上,你和其他人不一样,所以你要承担这个因素引发的一系列问题,而不是把这个问题转嫁给别人。 再举个例子,假如你要去赶高铁,开车前 15 分钟检票,你并不能因为你的时间已经达到开车前 15 分钟就通过检票口,实际上还差 10 分钟,按照你的道理,难道要铁路部门兼容你,就因为你一句手机允许你这么做? 感觉你的逻辑就像,凭本事借钱,为啥要还;凭本事杀人,为啥要坐牢 |
![]() | 61 koor 2017-02-09 14:47:13 +08:00 卤煮好可爱~摸摸头~ |
![]() | 62 Macbooker 2017-02-09 14:53:55 +08:00 为什么就不能提前十分钟出门,非得挑快十分钟然后“准时”出门 |
![]() | 63 w88975 2017-02-09 14:57:09 +08:00 我付费购买了你的 APP 你就应该为我提供服务,但凭什么需要我连接上网络才能用? 你开发者没有考虑到我没网的情况,是不是你的失误? 凭什么我用你的服务还需要我另付网络流量费用? 这是你设计的缺陷! |
64 missdeer 2017-02-09 14:59:50 +08:00 你的问题。 上面那些说校验只要服务器时间,不需要客户端时间的,自己没见识就不要乱说,开黄腔误导人。 当然不排除程序可以做得不依赖客户端时间(误 |
65 william23 OP @goodryb 你说的和我说的都不是一回事啊,我说的这个场景不会重复领取啊,难道你这个标准是适用于所有功能的? 手机 app 所有功能都要按照这个规矩来? 还要你举得例子都很变态啊。。你这个心理很危险啊。。 |
66 Halry 2017-02-09 15:04:20 +08:00 via iPhone 我觉得校验肯定是要按你手机的标准时间啊,毕竟你是用你的手机来生成 |
67 william23 OP @w88975 是的,你说的很对啊,这个时候不排除老年人会这样,所以产品要判断没网络的话要给个提示 他连最基本的提示都没有,让我跑了 3 次,而且你说的比较极端,我觉得我的情况还是算合理的,你好歹第一次说时间问题也就算了,第三次才说,这不是让人很无语吗? |
69 william23 OP @Halry 我是觉得任何检测都不应该拿客户端时间检测啊,只有服务器时间是正确的,你拿客户端时间, pc 时间也有快慢啊,客户端的时间是用户的自由啊 |
![]() | 70 oska874 2017-02-09 15:08:22 +08:00 你的问题。 你试试把电脑时间调了看看浏览网页有几个正常的。 |
![]() | 71 goodryb 2017-02-09 15:10:10 +08:00 @william23 #65 会不会重复领取不是你说了算,对开发者来说,羊毛党无时无刻都是存在的,任何客户端传递的信息都是不可靠的,都要在服务器端进行校验 如果是一个合格的开发者,所有的功能都是按照这个规矩来 举例是给你看的,希望你能看得懂,脑子是个好东西,希望你也有 |
![]() | 73 vibbow 2017-02-09 15:12:02 +08:00 via Android 检验客户端时间,难道不是用来防止重放攻击的吗? |
![]() | 74 hws8033856 2017-02-09 15:12:24 +08:00 @missdeer 你给我说说就 LZ 遇到的这个需求有什么必要验证客户端时间 |
75 missdeer 2017-02-09 15:15:25 +08:00 @hws8033856 说了你会叫我爸爸还是你会给我钱,为什么你叫我说我就要说啊,还有你眼瞎啊没看到我第三行 |
![]() | 76 HXM 2017-02-09 15:15:51 +08:00 via Android 理解楼主调快时间,家里墙上的钟也调快了五分钟 |
![]() | 77 imcocc 2017-02-09 15:21:48 +08:00 via iPhone ![]() 一个不按服务器时间非要调本地时间 一个是本地不使用标准时间。 这撕起来都有理, 谁退一步都能解决。 btw. 同情楼主跑 3 次。 |
79 debiann 2017-02-09 15:36:01 +08:00 via iPhone @william23 这就算“喷”了吗。。。这种事我以前也干过,但其实就是“自欺欺人”而已。或者说得柔和一点,不要自己骗自己 |
![]() | 80 phantom1124 2017-02-09 15:37:15 +08:00 我想知道什么礼包这么有吸引力,这么麻烦还没被拉黑 |
![]() | 82 tnx2014 2017-02-09 15:42:49 +08:00 ![]() 可以理解楼主把表调快 10 分钟,但是在这件事上对方也没错,用服务端还是客户端计时校验,是依不同情况而定的,也许人家的环境中使用本地校验效果更好,没全面了解的情况下不好乱下决定。就如上次那个几千人的年会抽奖由于无法控制网络环境很多人建议用客户端计时然后上传那样,不能说人家用客户端校验就一定有问题。 我也见过一些人调快时间生活,楼主本身也没什么问题,只是人家用标准时间就更没问题了,你说应当考虑时间误差,人家也考虑了五分钟,只是这种事不可能都考虑到,考虑误差 10 分钟的,那调快 20 分钟的怎么办? 因为是附赠的礼物,对方也不是必须给你,所以就不必太计较。 楼上的一个建议不错,如果楼主手机支持多时区时钟或附加时钟,可以使用附加时钟时间,这样就不影响标准时间,不会发生类似问题了。 |
![]() | 83 hws8033856 2017-02-09 15:49:37 +08:00 ![]() @vibbow 这只是领个礼包而已,重放攻击的意义是什么?给 LZ 再领一遍?服务器不做校验? |
![]() | 84 fengfisher2 2017-02-09 15:58:31 +08:00 个人觉得是你的问题。 |
![]() | 85 6IbA2bj5ip3tK49j 2017-02-09 16:03:04 +08:00 ![]() |
![]() | 87 vibbow 2017-02-09 16:05:56 +08:00 via Android @hws8033856 也许人家接口验证是全局的,不仅仅是针对这一个业务的。 |
![]() | 89 thinkif 2017-02-09 16:12:24 +08:00 就想知道是什么礼包这么吸引人,让你这么多次的往返店里,又这么多次的跟店员和客服沟通。 另外,将手机时间调快的人现在真的很少,反倒是将手表或者挂钟调快的人会稍微多一点。 |
![]() | 90 sun019 2017-02-09 16:39:05 +08:00 我的时间也调快了 5 分钟 某单车 APP 就不让我进 呵呵 |
![]() | 91 enenaaa 2017-02-09 16:43:17 +08:00 ![]() 我觉得楼主没问题。 把时间调成什么样是每个人的自主选择, 我相信像楼主这样调快或调慢的人还有很多。 作为开发者, 当然可以拒绝为此类客户服务。但具体来说,用客户端时间来做校验也好,密钥生成也好, 并非不可替代。问题是用这个来排给一部分用户制造障碍值不值得? 如果我是产品经理, 会让开发去掉这个限制。 |
![]() | 92 momosky 2017-02-09 17:37:01 +08:00 ![]() 规则是商家定制的,就可以做出各种解释 楼主可以提出疑问,但是商家也可以接受或不接受 |
96 mooczz 2017-02-09 18:28:49 +08:00 ![]() 上初中的时候,总会把闹钟调快 10 分钟,确实在心理上给了自己安全感。但是现在是数字时代,我的所有设备都是自动设置的,很多操作是基于时间校验的,作为普通用户,你不知道坑仔哪里。你不能适应网络社会,当然是你的问题了 |
![]() | 100 hst001 2017-02-09 19:56:28 +08:00 @whitenight 我也很想看看这些人的脑回路是怎么样的 |