token 是被开发者发送给后端的,攻击者如果无法获取到token 是无法通过后端服务器的校验的
但是cookie 不同,只要在同一个浏览器,浏览器就会自动将cookie 放入请求头中,如果用cookie 做登录验证,在同一个浏览器并且一登陆的情况下后端服务器将自动识别cookie 对请求进行放行例如:
小明登录了csdn, 此时小明突然想到了一件事情,登录了另一个网站,而这个网站被不知名的人埋入了一些请求,这些请求是当其他人进入该网站,则请求csdn 友好的帮助访问者发布一篇文章,
假如csdn 使用的是cookie做登录判断,小明访问该网站时触发了该请求,浏览器会自动将cookie 放入请求头中传给后端,后端服务器判断cookie 是已登录则放行了该网站的操作,小明在不知情的情况下被发布的一篇文章,这里只是一个例子,但是如果这里的请求变为自动将小明的钱包余额转账给那位不知名的人,就比较危险了
而如果使用token,token 并不会自动被浏览器放入请求头,当其他攻击者像服务器发送请求时,是不会携带token 的,后端服务器没有获取到token 则不会对请求进行放行,保证了用户数据的安全性