登录系统中token和session的比较
一、前置知识
1.认证
2.授权
3.凭证
二、cookie和session
1.出现原因
2.cookie
cookie的产生
cookie是服务器产生的
springboot设置cookie示例代码
1@RequestMapping("/testCookies")
2public String cookies(HttpServletResponse response){
3 response.addCookie(new Cookie("testUser","xxxx"));
4 return "cookies";
5}
cookie原理
第一次访问网站的时候,浏览器发出请求,服务器响应请求后,会将cookie放入到响应请求中,在浏览器第二次发请求的时候,会把cookie带过去,服务端会辨别用户身份,当然服务器也可以修改cookie内容
cookie存在哪
cookie一般是被浏览器以txt的形式存储在电脑硬盘中,供该浏览器进行读、写操作。
cookie的属性
cookie的共享策略
cookie不能跨域
3.session
出现背景
典型的session登录验证流程
Session的存储方式
Session的分布式问题
三、token相对于session的优点
1.Token 可以是无状态的,可以在多个服务间共享
当后端系统有多台时,由于是客户端访问时直接带着数据,因此无需做共享数据的操作。
2.Token可以避免CSRF攻击
CSRF
token解决
CSRF攻击之所以能够成功,是因为服务器误把攻击者发送的请求当成了用户自己的请求。那么我们可以要求所有的用户请求都携带一个CSRF攻击者无法获取到的Token。服务器通过校验请求是否携带正确的Token,来把正常的请求和攻击的请求区分开,也可以防范CSRF的攻击。