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

身份认证: JWT和Session是什么?

一、为什么需要临时凭证?

系统面临三个核心约束:

  1. 唯一鉴权方式只有(账号,密码)

  2. 服务端不记录请求状态,服务端不知道用户已登录了

  3. 避免重复传输敏感信息,不能每次都携带(账号,密码)进行请求

解决方案:登录时下发有时效的「通行证」

二、JWT的核心原理

如果通行证是一个简单的字符串info,会发生什么问题?

答: info可以被篡改伪造,服务端无法进行身份认证

解决方案: 将info用私钥加密为Signature,将(info,Signature)捆绑下发

如果篡改或伪造,需要同时修改info和Signature两部分,而没有私钥无法正确生成Signature

 

JWT的三部分为:

  1. Header(头部):描述令牌类型和签名算法

  2. Payload(负载):存放实际数据(如用户ID、过期时间等)

  3. Signature(签名):对前两部分的加密

格式:Header.Payload.Signature(Base64URL编码拼接)

三、Session的核心原理 

服务端生成一个全局随机SessionID,并在服务器上存储(SessionID,用户信息)表示用户已登录

然后将SessionID下发到客户端, 后续请求时只需要携带SessionID

四、安全性问题 

为什么不能每次发送密码?
风险维度密码直传临时凭证
通信安全必须全程HTTPS只需保护初始登录
泄露影响相当于永久权限有时效性
客户端存储密码明文存储风险极高仅存储无意义字符串

 并不是说使用JWT、Session就绝对安全了,只是凭证具有时效性,危害较小

http://www.xdnf.cn/news/9027.html

相关文章:

  • 深入解析 BlockingQueue:并发编程面试中的高频考点!
  • SDL2常用函数:SDL_RendererSDL_CreateRendererSDL_RenderCopySDL_RenderPresent
  • 数据库工程师备考
  • 第三届京麒CTF Web
  • ClickHouse性能优化技术深度解析与实践指南
  • (4)-Fiddler抓包-会话面板和HTTP会话数据操作
  • 多模态大语言模型arxiv论文略读(九十三)
  • Odoo 自动化规则全面深度解析
  • 探秘谷歌Gemini:开启人工智能新纪元
  • 基于树莓派的贪吃蛇游戏机
  • 【科研绘图系列】R语言绘制气泡图(bubble plot)
  • 噪声建模在一小时:最小化准备工作的自监督低光RAW图像去噪
  • ArcGIS 与 HEC-RAS 协同:流域水文分析与洪水模拟全流程
  • 数字展厅建设需融合创意设计与实用功能,打造多维用户体验!
  • 动态规划(7):背包问题
  • 解决 docker pull镜像失败
  • DEC Global:技术赋能如何重塑投资者决策模式?
  • Three.js搭建小米SU7三维汽车实战(5)su7登场
  • 深度解析新能源汽车结构与工作原理
  • 多端一体开发:iVX 如何让「一次开发,全平台部署」从理想照进现实
  • Android中一次完整的ipc通信过程
  • Vue 3.0中复杂状态如何管理
  • ARINC818_FILE
  • jquery基础知识
  • 批量转存夸克网盘内容并分享实操教程
  • charAt()
  • ArkUI:鸿蒙应用响应式与组件化开发指南(一)
  • RuoYi前后端分离框架集成UEditorPlus富文本编辑器
  • C++ list基础概念、list初始化、list赋值操作、list大小操作、list数据插入
  • Debian系统安装Python详细教程及常见问题解答