Cookie、Session、JWT

news2025/5/25 2:50:12

目录

实现方式与原理

存储位置

安全性

应用场景

Cookie、Session 和 JWT(JSON Web Token)都是 Web 开发中用于用户身份验证和会话管理的技术,它们在实现方式、存储位置、安全性等方面存在差异:

实现方式与原理

  • Cookie:是服务器发送到客户端(浏览器)并存储的小型文本文件。用户首次访问网站并登录时,服务器生成包含用户标识等信息的 Cookie,通过 HTTP 响应头中的Set - Cookie指令发给浏览器。浏览器存储该 Cookie,后续用户再次访问同一网站时,浏览器会在 HTTP 请求头中自动携带该 Cookie,服务器据此识别用户身份 。例如,用户登录某论坛后,论坛服务器会给浏览器发送 Cookie,下次用户再访问论坛,浏览器带着 Cookie,服务器就能认出是该用户。
  • Session:是服务器端用于存储用户会话信息的机制。用户登录时,服务器创建 Session 并生成唯一的 Session ID,同时将用户相关会话信息(如用户 ID、登录时间等)存储在服务器内存或数据库中。服务器通过Set - Cookie响应头把 Session ID 发送给浏览器存储。后续请求中,浏览器携带 Session ID,服务器根据此 ID 查找对应的 Session 数据来识别用户、验证身份。比如在电商网站购物,登录后服务器创建 Session 记录购物车等信息,通过 Session ID 识别用户操作。
  • JWT:是一种开放标准(RFC 7519),以 JSON 对象形式在客户端和服务端安全传输信息。它由头部(包含令牌类型和签名算法等信息)、载荷(包含声明信息,如用户身份、权限、有效期等)、签名(用于验证信息完整性和真实性,通过对头部、载荷等使用密钥和指定算法生成)三部分构成。用户登录成功,服务器生成 JWT 并发送给客户端。客户端后续请求时,将 JWT 放在请求头的Authorization字段(常用Bearer <token>形式 )等位置发送给服务器,服务器验证 JWT 的签名等信息来确认用户身份和权限。像前后端分离的项目中,前端登录后获取 JWT,后续向后端接口请求数据时带上 JWT。

存储位置

  • Cookie:存储在客户端浏览器。
  • Session:会话数据存储在服务器端,而用于标识会话的 Session ID 存储在客户端浏览器的 Cookie 中。
  • JWT:存储在客户端,常见存储位置有浏览器的localStoragesessionStorage,或者在 HTTP 请求头的Authorization字段等 。

安全性

  • Cookie:安全性相对较低,易被窃取、篡改。虽可通过设置HttpOnly(防止 JavaScript 读取 Cookie,降低跨站脚本攻击风险)、Secure(仅在 HTTPS 连接时传输 Cookie )等属性增强安全,但仍存在跨站请求伪造(CSRF)风险 。例如,攻击者利用用户已登录状态的 Cookie,在其他网站诱导用户发起恶意请求。
  • Session:会话数据在服务器端,相对安全。但如果 Session ID 泄露,攻击者可能利用该 ID 冒充用户,存在会话固定攻击等风险 。
  • JWT:通过签名机制保证数据完整性和真实性,可结合加密技术提升安全性,一定程度上抵御跨站脚本攻击等。但由于 JWT 的载荷是用 Base64 编码(并非加密),不宜在其中存储敏感信息;若密钥泄露,JWT 安全性将受严重威胁。

应用场景

  • Cookie:适用于存储用户偏好(如语言设置、主题偏好)、记录用户浏览历史等简单场景;也常用于传统 Web 应用的会话管理,配合 Session 使用实现用户登录状态保持等 。
  • Session:适合传统 Web 应用,尤其是有服务器端渲染、对会话状态管理要求较高的场景,如银行系统的用户登录会话管理,可在服务器端灵活控制会话有效期、存储用户操作记录等敏感信息 。
  • JWT:在分布式系统、前后端分离架构、移动应用、微服务架构中广泛应用。比如多个微服务组成的系统中,JWT 便于在不同服务间传递用户身份信息,实现统一认证和授权 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TPDS-2014《Efficient $k$-means++ Approximation with MapReduce》

推荐深蓝学院的《深度神经网络加速&#xff1a;cuDNN 与 TensorRT》&#xff0c;课程面向就业&#xff0c;细致讲解CUDA运算的理论支撑与实践&#xff0c;学完可以系统化掌握CUDA基础编程知识以及TensorRT实战&#xff0c;并且能够利用GPU开发高性能、高并发的软件系统&#xf…

地理特征类可视化图像

目录 一、蜂窝热力地图 1. 特点 (1)优点 (2)缺点 2. 应用场景 3.python代码实现 (1)代码 (2)实现结果 二、变形地图 1. 特点 (1)优点 (2)缺点 2. 应用场景 3.python代码实现 (1)代码 (2)实现结果 三、关联地图 1. 特点 (1)优点 (2)缺点 2. 应用场景 3.pyth…

【Java高阶面经:微服务篇】8.高可用全链路治理:第三方接口不稳定的全场景解决方案

一、第三方接口治理的核心挑战与架构设计 1.1 不稳定接口的典型特征 维度表现影响范围响应时间P99超过2秒,波动幅度大(如100ms~5s)导致前端超时,用户体验恶化错误率随机返回5xx/429,日均故障3次以上核心业务流程中断,交易失败率上升协议不一致多版本API共存,字段定义不…

DataGridView中拖放带有图片的Excel,实现数据批量导入

1、带有DataGridView的窗体&#xff0c;界面如下 2、编写DataGridView支持拖放的代码 Private Sub DataGridView1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles DataGridView1.DragEnterIf e.Data.GetDataPresent(DataFormats.FileDrop) ThenDim file…

跨域_Cross-origin resource sharing

同源是指"协议域名端口"三者相同&#xff0c;即便两个不同的域名指向同一个ip,也非同源 1.什么是CORS? CORS是一个W3C标准&#xff0c;全称是"跨域资源共享"&#xff08;Cross-origin resource sharing&#xff09;。它允许浏览器向跨源服务器&#xff…

Opencv常见学习链接(待分类补充)

文章目录 1.常见学习链接 1.常见学习链接 1.Opencv中文官方文档 2.Opencv C图像处理&#xff1a;矩阵Mat 随机数RNG 计算耗时 鼠标事件 3.Opencv C图像处理&#xff1a;亮度对比度饱和度高光暖色调阴影漫画效果白平衡浮雕羽化锐化颗粒感 4.OpenCV —— 频率域滤波&#xff…

大疆制图跑飞马D2000的正射与三维模型

1 问题描述 大疆制图在跑大疆无人机飞的影像的时候&#xff0c;能够自动识别相机参数并且影像自带pos信息&#xff0c;但是用飞马无人机获取的影像pos信息与影像是分开的&#xff08;飞马无人机数据处理有讲&#xff09;&#xff0c;所以在用大疆制图时需要对相机参数进行设置…

ConceptAttention:Diffusion Transformers learn highly interpretable features

ConceptAttention: Diffusion Transformers Learn Highly Interpretable Featureshttps://arxiv.org/html/2502.04320?_immersive_translate_auto_translate=1用flux的attention来做图文的显著性分析。 1.i

物联网低功耗保活协同优化方案:软硬件与WiFi网关动态联动

目录 一、总体方案概述 二、架构组成 2.1 系统拓扑 2.2 硬件端(MCU + WiFi 模组) 2.3 WiFi 网关 2.4 云端服务器 三、低功耗保活技术设计模式 3.1 模式一:定时唤醒 + MQTT 保活 3.1.1 设备端 3.1.2 优势 3.2 模式二:网关保活代理 + 本地网络唤醒 3.2.1 网关功能…

LW-CTrans:一种用于三维医学图像分割的轻量级CNN与Transformer混合网络|文献速递-深度学习医疗AI最新文献

Title 题目 LW-CTrans: A lightweight hybrid network of CNN and Transformer for 3Dmedical image segmentation LW-CTrans&#xff1a;一种用于三维医学图像分割的轻量级CNN与Transformer混合网络 01 文献速递介绍 三维医学图像分割旨在从计算机断层扫描&#xff08;CT…

光谱相机在地质勘测中的应用

一、‌矿物识别与蚀变带分析‌ ‌光谱特征捕捉‌ 通过可见光至近红外&#xff08;400-1000nm&#xff09;的高光谱分辨率&#xff08;可达3.5nm&#xff09;&#xff0c;精确识别矿物的“光谱指纹”。例如&#xff1a; ‌铜矿‌&#xff1a;在400-500nm波段反射率显著低于围…

Autodl训练Faster-RCNN网络(自己的数据集)

参考文章&#xff1a; Autodl服务器中Faster-rcnn(jwyang)复现(一)_autodl faster rcnn-CSDN博客 Autodl服务器中Faster-rcnn(jwyang)训练自己数据集(二)_faster rcnn autodl-CSDN博客 环境配置 我到下载torch这一步老是即将结束的时候自动结束进程&#xff0c;所以还是自己…

NFS服务小实验

实验1 建立NFS服务器&#xff0c;使的客户端顺序共享数据 第一步&#xff1a;服务端及客户端的准备工作 # 恢复快照 [rootserver ~]# setenforce 0 ​ [rootserver ~]# systemctl stop firewalld ​ [rootserver ~]# yum install nfs-utils -y # 服务端及客户端都安装 …

鸿蒙ArkTS-发请求第三方接口显示实时新闻列表页面

发请求展示新闻列表 鸿蒙ArkTS-发请求第三方接口显示实时新闻列表页面 1. 效果图 新闻首页&#xff1a; 点击某一新闻的详情页面&#xff08;需要使用模拟器才能查看详情页面&#xff09;&#xff1a; 2. 代码 1. key准备 首先需求到聚合网申请一个key&#xff0c;网址如下…

【创造型模式】工厂方法模式

文章目录 工厂方法模式工厂方法模式当中的角色和职责工厂方法模式的实现工厂方法模式的优缺点 工厂方法模式 今天我们继续学习一例创造型设计模式——工厂方法模式。参考的主要资料是刘丹冰老师的《Easy 搞定 Golang 设计模式》。 工厂方法模式当中的角色和职责 简单来说&…

【MySQL】使用文件进行交互

目录 准备工作 1.从文本文件中读取数据&#xff08;导入&#xff09; 1.1.CSV 文件 1.2.设置导入导出的路径 1.3.导入文件 1.4.将数据写入文本文件&#xff08;导出&#xff09; 2.从文件中读取并执行SQL命令 2.1.通过mysql监视器执行编写在文件里面的SQL语句 2.2.通过…

# 大模型的本地部署与应用:从入门到实战

大模型的本地部署与应用&#xff1a;从入门到实战 在当今人工智能飞速发展的时代&#xff0c;大模型&#xff08;尤其是大型语言模型&#xff0c;LLMs&#xff09;已经成为自然语言处理&#xff08;NLP&#xff09;领域的核心力量。从文本生成、机器翻译到问答系统&#xff0c…

Java对象内存模型、如何判定对象已死亡?

一、Java对象内存模型 Java对象在内存中由三部分组成&#xff1a; 含类元数据指针&#xff08;指向方法区的Class对象&#xff09;和Mark Word&#xff08;存储对象哈希码、锁状态、GC分代年龄等信息&#xff09;。 若为数组对象&#xff0c;还包含数组长度数据。 1&#xff0c…

智慧化工园区安全风险管控平台建设方案(Word)

1 项目概况 1.1 园区概况 1.1.1 XX化工园区简况 1.1.2 企业现状 1.1.3 园区发展方向 1.1.4 园区信息化现状 1.2 项目建设背景 1.2.1 政策背景 1.3 项目建设需求分析 1.3.1 政策需求分析 1.3.2 安全生产监管需求分析 1.3.3 应急协同管理需求分析 1.3.4 工业互联网安…

【uniapp】 iosApp开发xcode原生配置项(iOS平台Capabilities配置)

如果你需要配置诸如&#xff1a;Access Wi-Fi Information 简单地说就是这个地址 ios平台capabilities配置 本来这种配置就是在Xcode的平台中选中即可&#xff0c;他们的信息会存储在XCode工程的.entitlements和Info.plist文件。 按照uniapp文档说的&#xff0c; HBuilderX4.…