论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JW ...
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解 ...
八卦阵
金牌会员
|
2024-12-27 19:08:41
|
显示全部楼层
|
阅读模式
楼主
主题
926
|
帖子
926
|
积分
2778
前言
前面的几篇文章讲了很多 JWT 的优点,但作为技术职员都知道,没有一种技术是全能的 "银弹",所谓有矛就有盾,相比 Session、Cookie 等传统的身份验证方式,JWT 在拥有很多优点的同时,也有着不可忽视的缺点,比如:
JWT 的缺点
无法撤销
一旦 JWT 被发放给客户端,在有效期内这个 Token 就一直有效,无法被提前撤回
体积大,吃带宽
JWT 中包含了一些额外的信息,可能会使得 JWT 体积较大,增加网络传输开销
安全性比力差
JWT 中的信息是以明文形式存储的,容易被破解
一些解决的思绪
1. 无法撤销 的解决思绪
在用户表中增加一个整数类型的列 JWTVersion,它代表末了一次发放出去的令牌的版本号;
每次登录、发放令牌的时间,都让 JWTVersion 的值自增,同时将 JWTVersion 的值也放到 JWT 的负载中;
当执行禁用用户、撤回用户的令牌等操作的时间,让这个用户对应的 JWTVersion 的值自增;
当服务器端收到客户端提交的 JWT 后,先把 JWT 中的 JWTVersion 值和数据库中的 JWTVersion 值做比力,假如 JWT 中 JWTVersion 的值小于数据库中 JWTVersion 的值,就说明这个 JWT 过期了,这样就实现了 JWT 的撤回机制。
总结:
这个方案在用户表中保存了 JWTVersion 值,因此它本质上仍然是在服务器端保存状态,这是绕不过去的,它算是一种缺点比力少的妥协方案,相类似的方案尚有比如维护一个 Token 黑名单的办法,相对步骤比力多
2. 体积大,吃带宽 的解决思绪
精简 JWT 中的信息,只存储必要的信息。将一些非敏感且不经常变动的信息存储在服务端,而不是每次都包含在JWT中
设置较短的 JWT 过期时间,减少 JWT 的有效期,从减小 JWT 的体积
传输时对 JWT 举行压缩,减小 JWT 的巨细,常见的压缩算法包罗 GZIP 和 DEFLATE
在使用对称加密算法时,可以选择较小的密钥长度,减小 JWT 的巨细
选择更高效的加密算法和署名算法,减小 JWT 的巨细
定期清算过期的 JWT,避免过多无效 JWT 的存储占用带宽
3. 安全性比力差 的解决思绪
不在 JWT 中存储敏感信息,如密码等,降低信息泄露的风险
将 JWT 中的信息放在 Redis 上,Token 只放相应的 key,服务端拿到 token 后,再到 Redis 取详细的信息并反序列化为对象
往期精彩
C# 静态类,高手不想让你知道的 15 个真相
封装一个 C# 范围判断函数,从此告别重复编写范围判断代码的烦恼
用 C# Stopwatch 计时,让代码性能飞起来!
轻装上阵,Visual Studio LocalDB:.NET 程序员的当地数据库神器
封装一个C#全能底子数据类型转换器,一招解决全部底子类型转换烦恼
闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?
常用的 4 种 ORM 框架(EF Core,SqlSugar,FreeSql,Dapper)对比总结
C# AutoMapper 10个常用方法总结
C# 7个方法比力两个对象是否相等
C# 去掉字符串末了一个字符的 4 种方法
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
八卦阵
金牌会员
这个人很懒什么都没写!
楼主热帖
不可思议但又无处不在的漏洞,WEB安全 ...
【历史上的今天】6 月 2 日:苹果推出 ...
C#实现HTTP访问类HttpHelper
开源共建 | Dinky 扩展批流统一数据集 ...
企业应用超融合架构的设计实例及超融合 ...
袋鼠云春季生长大会圆满落幕,带来数实 ...
大规模 IoT 边缘容器集群管理的几种架 ...
【软考】系统集成项目管理工程师(二) ...
ClickHouse 查询优化详细介绍
Python字符串替换的3种方法
标签云
运维
CIO
存储
服务器
浏览过的版块
主机安全
Postrge-SQL技术社区
终端安全
备份
运维.售后
图数据库
网络安全
linux
快速回复
返回顶部
返回列表