当前位置: 首页 > news >正文

Cookies和Sessions

Cookies 和 Sessions 都用于在 HTTP 请求之间携带用户信息,例如用户登录状态、用户权限等。

1. 简介

1.1 Cookies

Cookies 通常有大小限制(4KB)。携带少量信息,并存储在用户设备上,每次用户后续请求时,Cookies 都会被一同发送。用户可以在浏览器中选择禁用 Cookies。
在这里插入图片描述

1.2 Sessions

与 Cookies 不同,Sessions 在服务器端创建并存储。服务器通常会生成一个唯一的 Session ID,并将其与特定的用户会话绑定,这个 Session ID 会通过 Cookie 返回给客户端。Sessions 还可以存储更多的数据。
由于会话数据不直接被客户端访问,Sessions 在安全性上更有优势。
在这里插入图片描述

2. 详细对比

CookiesSessions
存储位置存储在客户端(浏览器)本地存储在服务器端(内存、数据库、分布式缓存)
存储容量通常限制为约 4KB受服务器存储限制,可保存更多数据
生命周期通过 ExpiresMax-Age 设置过期时间,到期自动删除默认 15~30 分钟不活动后失效,可通过Session Timeout配置
安全性数据可被用户查看或篡改(可用 HttpOnly来防止 JS 读取,配合 Secure 标记强制 HTTPS 传输)只在客户端存储 Session ID,数据在服务器端,更安全
网络传输开销每次请求自动携带 Cookie 数据,增加网络负载仅传输 Session ID,数据本身不随请求发送
跨域限制受同源策略限制,可通过 DomainPath 调整依赖 Cookie 传输 Session ID,同样受跨域限制
可扩展性(分布式场景)天然支持跨服务器需 Session 共享机制(Redis、Memcached)或 Sticky Session
典型使用场景用户偏好设置(主题、语言)、记住登录状态、用户行为跟踪存储登录用户信息、权限数据、购物车等敏感信息

3. 衍生问题

1. 如果禁用 Cookies,Session 还能用吗?

不能直接用,因为客户端无法存储 Session ID,可以考虑将 Session ID 放在 URL 参数或其他存储方式中,但存在安全风险(容易被窃取)。

2. 如何防止 Session 固定攻击(Session Fixation)?

登录成功后生成新的 Session ID,避免复用旧的 ID。

3. Cookie 如何防止被 XSS 窃取?

设置 HttpOnly 和 Secure 属性,并配合 CSP(内容安全策略)防御 XSS。

4. Session 在分布式系统中如何保持一致?

使用集中式存储(Redis、Memcached)来保存 Session 数据,避免单机 Session 丢失。

5. Cookies 和 JWT 的区别?

JWT(JSON Web Token)是一种无状态的认证方式,信息保存在客户端,不需要服务器保存会话数据。Cookies 是一种存储机制,JWT 可以放在 Cookie 中,也可以放在 LocalStorage 里。

http://www.dtcms.com/a/328049.html

相关文章:

  • 视觉大模型评测数据集
  • [SC]如何使用sc_semaphore实现对共享资源的访问控制
  • LeetCode 2787.将一个数字表示成幂的和的方案数:经典01背包
  • 电机极数2极、4极、6极、8极的区别
  • Vue接口平台小功能——发送报告到飞书
  • 【KO】android 面试 算法
  • 数据分析学习总结之实例练习(双十一淘宝美妆)
  • MySQL 索引算法
  • 基于Hadoop的汽车价格预测分析及评论情感分析可视化系统
  • 基于SpringBoot的旅游网站系统
  • 码上爬第六题【协程+AES解密+请求参数加盐】
  • Android 项目:画图白板APP开发(一)——曲线优化、颜色、粗细、透明度
  • 需求分发机制如何设定
  • mssql server2016升级到2019报msoledbsql.msi文件错误
  • 白板功能文档
  • golang的继承
  • [Metrics] RMSE vs ADE
  • 衡量机器学习模型的指标
  • 【基于Redis的手语翻译序列存储设计】
  • Ansible 自动化介绍
  • 飞算AI:企业智能化转型的新引擎
  • react+Zustand来管理公共数据,类似vue的pinia
  • React 腾讯面试手写题
  • Orange的运维学习日记--40.LNMP-LAMP架构最佳实践
  • 【前端:Html】--3.进阶:图形
  • [激光原理与应用-252]:理论 - 几何光学 - 传统透镜焦距固定,但近年出现的可变形透镜(如液态透镜、弹性膜透镜)可通过改变自身形状动态调整焦距。
  • 虚拟机环境部署Ceph集群的详细指南
  • 「让AI大脑直连Windows桌面」:深度解析Windows-MCP,开启操作系统下一代智能交互
  • Hi3DEval:以分层有效性推进三维(3D)生成评估
  • 【树状数组】Range Update Queries