手机时间被用户手动改过,云端签名链接为什么马上失效?
harmonyos
下载链接只有几分钟有效期,设备时间改快以后,客户端直接判断过期,但服务端其实还能用。时间有效性是不是不该完全信本机时间?
您需要先 登录 才能评论/回答
全部评论(1)
对,这种场景确实不该完全信本机时间。用户改个系统时间就能绕过客户端校验,说明这个校验放在前端本身就不太可靠。
比较稳妥的做法是:客户端只做一个粗粒度的拦截,真正的过期判断交给服务端。比如链接里带一个过期时间戳,客户端可以先拿当前时间比一下,如果明显已经过了很久就直接提示,不用再发请求;但如果时间差不大、或者用户改过时间,就直接请求服务端,由服务端返回真正的 403 或者 410。
如果想更严格一点,可以在下载链接里带上服务端签发的时间戳或者 token,客户端拿这个去请求,服务端自己判断有没有过期,不依赖客户端传过来的时间。这样就算用户把设备时间改到一年以后,服务端也能正确识别。
另外如果担心时间被篡改,可以在首次请求的时候让服务端返回一个服务器时间,客户端拿这个时间做偏移量,后续都用偏移后的时间来判断,比直接用本机时间靠谱一些。但这个也只能防普通用户,真正的安全边界还是得放在服务端。
2026-09-23 13:36:14
