Day01.深入理解Jwt

news/2024/6/19 3:55:57 标签: 安全, https, http
http://www.w3.org/2000/svg" style="display: none;">

https>https://img-blog.csdnimg.cn/f86536c2d1c742988807d98f20aee6a6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5piv5bm05bCR55qE5qyi5ZacX2xpdQ==,size_16,color_FFFFFF,t_70,g_se,x_16" alt="在这里插入图片描述" />

Q:一句话概述Jwt?

A:在开发API时,为了防止API被非法调用,会引入参数签名。最简单的参数签名就是把各种参数拼接成字符串,再加一个密钥,最后做一个MD5签名。只要请求来的签名不符就可以认为签名被恶意篡改过。Jwt就是把这件事规范下来了。Jwt的Header部分说明如何进行签名,payload部分就是参数,signature部分就是签名。然后为了URL安全,把整个数据做base64即可。

Q:Jwt的好处?

A:可以使服务器免于存储Session的压力,同时在集群环境下,也免除了Session需要同步的烦恼;

Q:Jwt的认证流程?

https>https://img-blog.csdnimg.cn/img_convert/f864b191eeaed4503883665915bbaa56.webp?x-oss-process=image/format,png" alt="img" />

Q:Jwt与Session Cookie的区别?

A:Jwt验证方式中,Jwt即扮演cookie的角色。客户端在需要身份认证的时候则传回Jwt,区别在于服务器端,此时的服务端不需要通过Session来获取身份信息,而是直接提取Jwt中的信息。也就是说Jwt并不是一个简单的Token,而是可以把信息(Json格式)编码进去的数据。服务器验证签名相符则表示可以使用其携带的数据,否则认证失败。因为信息编码在Jwt中,所以可以免去Session查询的消耗。

而Jwt中的数据需要通过对比签名来确保正确,签名需要的密钥只能存在服务器端。把Jwt的下发和验证逻辑都在服务端处理,这是保证安全的关键。

Q:Jwt的组成部分

A:

  • 头部(header)
{
    "alg" : "AES256", 
    "typ" : "JWT"
}

alg声明使用哪种Hash算法。

  • 荷载(payload)
{
	"sub": "1234567890",
	"name": "John Doe",
	"admin": true
}

payload也就是Jwt中携带的数据。

  • 签名(signature)

签名是Jwt认证的安全核心。因为Base64编码基本等于公开,也很容易被篡改。如何保证可信,那就在签名上面。签名是header、payload和一个密钥产生的哈希值。纵然前面的数据容易被篡改,可是如果不知道签名的密钥则很难保证签名正确。


几个安全要点

  1. 不要假如敏感信息在payload中,因为base64可以无障碍解码
  2. 密钥一定要管理好,只能存在服务器。因为安全的核心在签名,签名的核心在密钥
  3. payload中加入过期时间。因为服务器不存储状态。所以无法判断其有效期。

参考:

JWT(JSON Web Token) 原理简析


http://www.niftyadmin.cn/n/742114.html

相关文章

【无标题】2021年建筑电工(建筑特殊工种)最新解析及建筑电工(建筑特殊工种)免费试题

题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:建筑电工(建筑特殊工种)最新解析考前必练!安全生产模拟考试一点通每个月更新建筑电工(建筑特殊工种)免费试题题目及答案!多做几遍,其实通过建筑…

2021年广东省安全员C证第三批(专职安全生产管理人员)考试总结及广东省安全员C证第三批(专职安全生产管理人员)模拟考试题库

题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:广东省安全员C证第三批(专职安全生产管理人员)考试总结是安全生产模拟考试一点通总题库中生成的一套广东省安全员C证第三批(专职安全生产管理人…

Shiro-Jwt整合

Shiro-Jwt整合 Github项目地址:https://github.com/realLiuzh/ShiroJwt-Verification 特性 SpringBoot整合Shiro-Jwt实现RBAC(Role-Based-Access-Control)。整合腾讯云SMS服务,实现手机号登录注册。Validation实现参数校验。跨域支持。 前置知识 深…

RESTful架构风格

RESTful CSDN地址:https://blog.csdn.net/weixin_45921593/article/details/122421374 概念 RESTful(Representational State Transfer),即表现层状态转化。它是一种Web应用程序的设计风格和开发方式,其基于HTTP。适用于现代互联网厂商作…

ElasticSearch基础篇

ElasticSearch 一、简介 mysql作为数据持久化,ElasticSearch提供检索功能 基本概念 ESMySQLindex(索引)databasetype(类型)tabledocument(文档)record(记录)在ES中,数据是以json格式存储的 ES模型 ES的工作原理 倒排索引 将要保存的数据data进行分…

【无标题】2021年中式烹调师(中级)试题及解析及中式烹调师(中级)复审考试

题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:中式烹调师(中级)试题及解析是安全生产模拟考试一点通生成的,中式烹调师(中级)证模拟考试题库是根据中式烹调师&#xf…

ElasticSearch进阶篇

ElasticSearch-2 ElasticSearch进阶篇 _Search检索文档 前面讲的那个是查询单条记录,可以理解为无condition的select ES支持两种基本方式的检索: 通过uricondition(检索参数)通过urirequestBody(请求体) uricondition GET bank/_search?q*&sor…

2021年道路运输企业安全生产管理人员考试总结及道路运输企业安全生产管理人员理论考试

题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年道路运输企业安全生产管理人员考试总结为正在备考道路运输企业安全生产管理人员操作证的学员准备的理论考试专题,每个月更新的道路运输企业安全生产管理人员理论…