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

基于阿里云的网站开发专注于网站营销服务

基于阿里云的网站开发,专注于网站营销服务,页面设计器翻译成英文,图片分页wordpress主题✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:每天一个知识点 ✨特色专栏&#xff1a…

在这里插入图片描述

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉
🍎个人主页:Leo的博客
💞当前专栏:每天一个知识点
✨特色专栏: MySQL学习
🥭本文内容:JWT和Token之间的区别
🖥️个人小站 :个人博客,欢迎大家访问
📚个人知识库: 知识库,欢迎大家访问

目录

    • 1.Token
      • 1.1 特点和使用
      • 1.2 Token基本原理
      • 1.3 优点
      • 1.4 缺点
    • 2.JWT
      • 2.1 JWT优势
        • 1.无状态
        • 2.有效的避免的CSRF攻击
      • 2.2 JWT基本原理
      • 2.4 差异性

在这篇文章中,我们主要介绍了JWT的相关概念。

  1. 什么是JWT
  2. JWT由哪些部分组成
  3. JSON Web Tokens是如何工作的
  4. 如何基于 JWT 进行身份验证
  5. 如何防止 JWT 被篡改的

今天我们主要介绍一下JWT跟Token之间的区别和联系。

1.Token

Token是一个宽泛的术语,它可以指代任何一种用于身份验证的机制。Token 常常被用在验证和授权流程中。Token 可以有不同的形式和结构,如随机生成的字符串或者特定格式的编码数据。

1.1 特点和使用

  1. 不固定格式:Token 可以是任何格式的数据字符串,不仅限于JWT。
  2. 存储信息:Token 可能仅作为引用存储在服务器上,服务器通过该引用来获取存储的状态信息。
  3. 会话管理:经统一的身份验证后,Token用来管理用户会话。
  4. 传输方式灵活:可以通过HTTP headers、URL参数或请求体传输。

1.2 Token基本原理

Token (就是加密的字符串,使用MD5,等不可逆加密算法,一定要保证唯一性)

客户端使用用户名跟密码请求登录

服务端收到请求,去验证用户名与密码

验证成功,服务端会签发一个Token保存到(Session,redis,mysql…)中,然后再把这个 Token 发送给客户端

客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里

客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

服务端收到请求,验证密客户端请求里面带着的 Token和服务器中保存的Token进行对比效验, 如果验证成功,就向客户端返回请求

1.3 优点

  1. 可以隐藏真实数据,安全系数高
  2. 适用于分布式/微服务
  3. Token支持手动控制,过期、吊销等
  4. 可以实时查询现有Token

1.4 缺点

  1. 存放在数据库或者redis,依赖服务器资源
  2. 效率相对JWT比较低

2.JWT

2.1 JWT优势

1.无状态

JWT 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。这显然增加了系统的可用性和伸缩性,大大减轻了服务端的压力。

不过,也正是由于 JWT 的无状态,也导致了它最大的缺点:不可控!

就比如说,我们想要在 JWT 有效期内废弃一个 JWT 或者更改它的权限的话,并不会立即生效,通常需要等到有效期过后才可以。再比如说,当用户 Logout 的话,JWT 也还有效。除非,我们在后端增加额外的处理逻辑比如将失效的 JWT 存储起来,后端先验证 JWT 是否有效再进行处理。

2.有效的避免的CSRF攻击

CSRF(Cross Site Request Forgery) 一般被翻译为 跨站请求伪造,属于网络攻击领域范围。相比于 SQL 脚本注入、XSS 等安全攻击方式,CSRF 的知名度并没有它们高。但是,它的确是我们开发系统时必须要考虑的安全隐患。就连业内技术标杆 Google 的产品 Gmail 也曾在 2007 年的时候爆出过 CSRF 漏洞,这给 Gmail 的用户造成了很大的损失。

关于CSRF具体可以参考我这篇文章

2.2 JWT基本原理

JWT是JSON Web Token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证JWTToken的正确性,只要正确即通过验证。

JWT包含三个部分: Header头部,Payload负载和Signature签名。由三部分生成JwtToken,三部分之间用“.”号做分割。 校验也是JWT内部自己实现的 ,并且可以将你存储时候的信息从JwtToken中取出来无须查库

客户端使用用户名跟密码请求登录

服务端收到请求,去验证用户名与密码

验证成功,服务端会签发一个JwtToken,无须存储到服务器,直接再把这个JwtToken发送给客户端

客户端收到JwtToken以后可以把它存储起来,比如放在 Cookie里或者LocalStorage 里

客户端每次向服务端请求资源的时候需要带着服务端签发的JwtToken

服务端收到请求,验证密客户端请求里面带着的 JwtToken, 如果验证成功,就向客户端返回请求的数据

2.4 差异性

  1. 标准与自定义:JWT 是一个开放标准(RFC 7519),明确定义了 Token 的结构和生成方式,而 Token 通常是自定义的,没有统一的结构标准。
  2. 状态存储:JWT 是无状态的,被设计为自包含,携带所有用户信息,因此服务端无需保存状态。而传统 Token 可能需要服务端存储额外的会话信息。
  3. 安全性:JWT 通过签名提供了额外的安全性。传统 Token 若无额外的安全措施,则可能容易受到中间人攻击等安全威胁。
  4. 体积:JWT 通常比简单 Token 体积更大,因为它包含了更多的用户信息和必需的加密数据。
http://www.hkea.cn/news/574782/

相关文章:

  • 获取网站访客信息seo分析师招聘
  • 制作网页的网站有哪些网站建设
  • 日本真人做爰无遮挡视频免费网站嘉兴关键词优化报价
  • 忻州市中小企业局网站贵州整站优化seo平台
  • 网页怎么制作超链接seo兼职接单平台
  • 网站建设中应注意哪些问题重庆整站seo
  • 贵阳网站建设哪家便宜微商软文范例大全100
  • 怎么在微信上做网站竞价交易
  • wordpress优化版4.7.4网站seo设计
  • 网上课程网站精准客户数据采集软件
  • 专业网站建设报价外呼系统电销
  • 网站建设公司价格差别seo还有哪些方面的优化
  • 哪家公司建造了迪士尼乐园关键词优化推广排名多少钱
  • 做教育的网站有哪些内容吗湖南网站营销推广
  • wordpress 跳过ftp搜索引擎排名优化方案
  • 360做的网站北京营销推广公司
  • 我国政府网站建设的趋势宁波seo公司排名榜
  • 高端网站建设,恩愉科技专业的seo搜索引擎优化培训
  • 跨境网站开发公司网站seo思路
  • 冠县网站建设活动推广方案
  • 鲜花培训网站建设网站推广要点
  • 情趣内衣怎么做网站如何制作网页
  • 网站交互技术百度推广登陆后台
  • 网站的推广和宣传方式各行业关键词
  • 腾讯云服务器网站建设淘宝推广哪种方式最好
  • 大专网站建设论文找个免费的网站
  • 移动端网站开发流程图seopeix
  • 购物网站制作免费太原seo招聘
  • 怎么建设食品网站济南seo外包公司
  • 建设网站有哪些seopeix