越权、cookie和session
本文最后更新于:2022年8月25日 下午
1 cookie 和 session 的作用
1.1 cookie
- cookie 存放在客户端,是客户端保持状态的方案。
- 持久 cookie: 网易邮箱登录的时候会提示保持登录时间7天,就会设置session_id的生存时间为7天,并保存在本地硬盘上。
- 会话 cookie: 不设置过期时间,在浏览器关闭后 cookie session 失效
- cookie 的主要作用之一是记录 session_id
- 不管用户登录或者不登录服务器都会发送 cookie 给客户端
1.2 session
- session 存放在服务器端,是服务器端保持状态的方案
- 在服务器端保持状态的方案在客户端也需要保存一个标识,所以 session 机制需要借助于 cookie 机制来达到保存标识的目的
- session 的失效时间:
- 程序调用HttpSession.invalidate()
- 距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
- 服务器进程被停止
Tips: 关闭浏览器只会使存储在客户端浏览器内存中的 cookie session 失效,不会使服务器端的 session 对象失效。
2 越权与 session_id 的校验
2.1 越权存在的原因
- 在进行方法调用的时候,未进行请求用户 cookie 中的 session_id 和目标信息拥有者 session_id 是否匹配一致,直接用用户 id 或者其他 id 进行了匹配
2.2 越权存在的位置
- 水平越权:登录注册、密码找回、信息查看、交易支付
- 垂直越权:高低权限账号权限不同的所有位置
参考内容:
越权、cookie和session
https://worisur.github.io/2022/08/24/2022-08-24.越权_cookie_session/