Web漏洞XSS之会话管理

web漏洞XSS之会话管理

一,概述

  1. 为什么需要会话管理?
    HTTP是无状态的,一次请求结束,连接断开;
    服务器再次收到请求时,无法识别此次连接用户是哪个用户;
    为了需要辨别访问的用户,需要一种记录用户的方式。
  2. 会话管理的方式
    ①.session; ②cookie; ③token

二、session管理方式

  1. 认证过程
    ①服务器session是用户第一次访问应用时,服务器就会创建的对象;
    ②服务器为每一个session都分配一个唯一的session ID;
    ③服务器在创建完session后,会把session ID通过cookie返回用户所在的浏览器;
    ④当用户第二次向服务器发送请求的时候,就会通过cookie把session ID 传回给服务器;
    ⑤用户再次请求时,服务器能够根据session ID找到与该用户对应的session信息。
  2. 问题
    ①这种方式会把会话信息存储到web服务器里面,当用户同时在限量比较多时,这些会话信息会占用较多的内存;
    ②当应用才集群部署时,会遇到多台web服务器之间如何做session共享的问题,当多个应用要共享session时,还会遇到跨域问题。
  3. 实验代码逻辑
    在这里插入图片描述

三、cookie管理方式

  1. 基础
    cookie是由http服务器设置的;
    cookie信息保存在浏览器中
  2. cookie和session的区别(分享一个写的很详细的链接: link)
    ①存取方式不同;②隐私策略不同;③支持跨域不同;④服务器压力不同;⑤支持的浏览器不同;⑥保存的有效期不同。
    最大的区别是:cookie将数据存储在客户端,而session将数据存储在服务端。
  3. 认证的过程
    ①用户端发起登录请求,服务器端传入的用户密码之类的身份信息;
    ②服务器端验证用户是否满足登陆条件。如果满足,就根据用户信息创建一个登陆凭证;
    ③服务器把创建好的登陆凭证先做数字签名,再用对称加密算法做加密处理;
    ④将签名、加密后的字符串写入cookie,cookie的名字必须固定;
    ⑤用户登录后发起后继请求,服务器段根据保存的登陆凭证的cookie名字,获取到相应的cookie值。
  4. 问题
    ①服务器端无状态化;
    ②cookie由存储大小的限制,没有办法存储太多的数据;
    ③每次传送cookie,增加请求的数量,影响访问性能;
    ④同样存在跨域问题(不同域名无法相互读取cookie)

四、token管理方式

流程和实现和cookie——based基本无差别;
cookie——based里面写到cookie里面的ticket,此情景称为token;
token在请求都必须通过URL参数或是http headen的形式主动带上token。

猜你喜欢

转载自blog.csdn.net/zqzqzqzqwuwuwu/article/details/110421761
今日推荐