现在网站基本都是用token来做身份验证,因为token不容易伪造。
我自己有以下疑问:
用户登录的时候服务端会返回一个token,客户端会把这个token存入本地,比如存入cookie中,然后在发送http请求的时候会带上cookie,既然这个token还是存在cookie中,那不也是不安全的吗?
现在网站基本都是用token来做身份验证,因为token不容易伪造。
我自己有以下疑问:
用户登录的时候服务端会返回一个token,客户端会把这个token存入本地,比如存入cookie中,然后在发送http请求的时候会带上cookie,既然这个token还是存在cookie中,那不也是不安全的吗?
能拿到token的前提是你拥有账号密码。而账号密码的泄漏代码怎么防范?
而cookie的生命周期为浏览器会话期间有效,关闭浏览器窗口,cookie就会消失。
所以你的担心是多余的。
当然也不排除,你人走了浏览器没有关闭,人家偷偷记录。同样的代码没办法控制。
cookie你打开F12-Application-Cookie就能改, 当然你把token放cookie里也是能改的. 但是token你改了之后, 服务端是能发现的.
你想, token不是由header+payload+signature组成吗? 第三个部分的signature就是前两部分的散列值, 你一改服务端收到token时, 对header+payload再做一次hash, 跟signature对比, 就知道这个token有没有被修改, 如果被修改了, 就可以拒绝这个请求, 返回403
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
除非 token 是一次性的,用完就丢的那种,否则总要有个地方存的。
安全是相对的,存在用户的本地,只要用户的本地环境是安全的,那么 token 也是相对安全的。如果用户本地不安全,那么一切安全都无从谈起。