cookie 、session都是 用来管理会话 有效期的
cookie存储在浏览器缓存中,字段内容是请求可以通过set_cookie设置,只要登录后,不论下发这个域名的哪个请求都会携带这个相同的cookie数据下发到请求
session存储在服务器端,有一个关联id,将session信息与cookie进行关联有可能会暴露在F12请求中,有一个set_cookie:session=****
会话登录后,会有一些登录信息需要保存到session里,证明用户是已经登录的,比如用户id,登录时间、权限等
这些信息不能放在cookie里,一是不安全,二是cookie会随前端请求下发到服务端,如果内容太长会影响消息响应耗时
应用在判断用户是否会话有效,拿到请求的cookie数据,cookie数据找到对应的session,如果sessionid已存储在redis中,那么会话有效
token是用来做API请求鉴权的一个令牌,用于验证用户身份和权限
cookie的测试:
0.用户登录,生成cookie,新开页签访问,不用登录直接访问
1.演示使用抓包篡改后的cookie能否请求服务
2.注销会话或会话超时,会对cookie进行清理
3.里面的cookie中携带的sessionid错误请求失败
4.cookie超长请求失败
session的测试:
1.cookie中携带的sessionid有效,请求成功
2.cookie中携带过期的sessionid,请求失败
3.验证系统会话超时注销,会清理过期的session
4.session的续期
5.用户主动注销,session被清除
Token的测试:
1.下发请求不携带token,请求失败
2.下发请求携带正确token,请求成功
3.下发请求携带被篡改的token,请求失败
4.下发请求携带过期的token,请求失败
5.下发请求携带用户信息不一致的token,请求失败,返回403
6.下发请求携带超长的token,查看请求响应