关于身份验证token的一些疑问?

现在网站基本都是用token来做身份验证,因为token不容易伪造。
我自己有以下疑问:
用户登录的时候服务端会返回一个token,客户端会把这个token存入本地,比如存入cookie中,然后在发送http请求的时候会带上cookie,既然这个token还是存在cookie中,那不也是不安全的吗?

阅读 2.4k
3 个回答

除非 token 是一次性的,用完就丢的那种,否则总要有个地方存的。

安全是相对的,存在用户的本地,只要用户的本地环境是安全的,那么 token 也是相对安全的。如果用户本地不安全,那么一切安全都无从谈起。

能拿到token的前提是你拥有账号密码。而账号密码的泄漏代码怎么防范?

而cookie的生命周期为浏览器会话期间有效,关闭浏览器窗口,cookie就会消失。

所以你的担心是多余的。

当然也不排除,你人走了浏览器没有关闭,人家偷偷记录。同样的代码没办法控制。

cookie你打开F12-Application-Cookie就能改, 当然你把token放cookie里也是能改的. 但是token你改了之后, 服务端是能发现的.
你想, token不是由header+payload+signature组成吗? 第三个部分的signature就是前两部分的散列值, 你一改服务端收到token时, 对header+payload再做一次hash, 跟signature对比, 就知道这个token有没有被修改, 如果被修改了, 就可以拒绝这个请求, 返回403

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题