越权、cookie和session

本文最后更新于:2022年8月25日 下午

1 cookie 和 session 的作用

  • cookie 存放在客户端,是客户端保持状态的方案。
  1. 持久 cookie: 网易邮箱登录的时候会提示保持登录时间7天,就会设置session_id的生存时间为7天,并保存在本地硬盘上。
  2. 会话 cookie: 不设置过期时间,在浏览器关闭后 cookie session 失效
  • cookie 的主要作用之一是记录 session_id
  • 不管用户登录或者不登录服务器都会发送 cookie 给客户端

1.2 session

  • session 存放在服务器端,是服务器端保持状态的方案
  • 在服务器端保持状态的方案在客户端也需要保存一个标识,所以 session 机制需要借助于 cookie 机制来达到保存标识的目的
  • session 的失效时间:
  1. 程序调用HttpSession.invalidate()
  2. 距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
  3. 服务器进程被停止

    Tips: 关闭浏览器只会使存储在客户端浏览器内存中的 cookie session 失效,不会使服务器端的 session 对象失效。

2 越权与 session_id 的校验

2.1 越权存在的原因

  • 在进行方法调用的时候,未进行请求用户 cookie 中的 session_id 和目标信息拥有者 session_id 是否匹配一致,直接用用户 id 或者其他 id 进行了匹配

2.2 越权存在的位置

  • 水平越权:登录注册、密码找回、信息查看、交易支付
  • 垂直越权:高低权限账号权限不同的所有位置

参考内容:

cookie与session作用、区别、应用范围、session的工作原理


越权、cookie和session
https://worisur.github.io/2022/08/24/2022-08-24.越权_cookie_session/
作者
worisur
发布于
2022年8月24日
许可协议