面试有被问到这个,当时想到了 HTTPS,但感觉太粗暴了,就说不知道,后来在网上搜索,好像也没看到让我理解和信服的其他答案,似乎只有 HTTPS。
-
验证 token 的同时验证 IP 或者设备信息(似乎IP和硬件设备信息是可以被伪造的?)
-
使用 HTTPS 协议。
使用短生命周期的 token 甚至一次性 token 可以减小问题的影响(每次服务端都发新的 token,但响应也能抓包,赶在客户端之前用掉这个新发的 token,也不能很好地解决)。
使用 JWT,但 JWT 只能保证 token 不被篡改,所以问题还是出在 HTTP 的明文传输上,应该还是得上加密,上 HTTPS 或其他加密方法。
(其实要是别人在你离开的一小会直接用你的电脑或者手机,这就真的很难解了)
以上为个人学习理解,欢迎大佬在评论区指出问题,提供方案。