浅谈session真正含义 session是什么意思

【浅谈session真正含义 session是什么意思】 什么是Session?

  • Session在网络应用中被称为“会话控制” 。
  • Session存储在服务器端 。
  • 用户A访问网站B , A登录网站后 , 服务器会创建一个Session来保存用户状态和相关信息 。每个Session对应一个标识符SessionID来标识用户身份 。SessionID一般是由服务器以加密的方式写到cookie中的 , 这样用户A登录后 , 访问网站B中不同的网页时请求中会带上SessionID来标识他的身份 , 以此实现一次登录 , 访问全网站 。(现在大多数站点采用基于cookie的session管理方式:用户登陆成功后 , 设置一个唯一的cookie标识本次会话 , 基于这个标识进行用户授权 。只要请求中带有这个标识 , 都认为是登录态 。)

浅谈session真正含义 session是什么意思

文章插图
Session劫持
只要请求中带有这个标识 , 都认为是登录态
这就危险了 , 一旦你的标识被别人获取 , 你的Session就被别人劫持了 , 他就可以用你的身份为所欲为 。
最基本的cookie窃取方式:xss漏洞
攻击者最简单获取他人cookie信息的方法是XSS攻击 , 想办法注入js脚本到被攻击者客户端并执行 , 通过执行这个js脚本 , 攻击者在被攻击者登录后获得了他的SessionID , 通过在自己客户端修改sessionId获得了被攻击者的身份 , 后果不堪设想 。。。
防御方法
  • cookie设置为HttpOnly , js脚本就无法再获取cookie , 也就无法得到你的会话标识 。
  • 防止xss注入:过滤用户输入
  • 每次请求做其他验证:cookie中取加密后的用户id , session中取用户id并加密 , 比较二者 , 不同时拦截住 。(个人理解)

    推荐阅读