Token泄露引发的问题

简介: Token泄露引发的问题

1 如何防止token劫持或者说是泄露?

token肯定会存在泄露的问题。比如我拿到你的手机,把你的token拷出来,在过期之前就都可以以你的身份在别的地方登录。


解决这个问题的一个简单办法

在存储的时候把token进行对称加密存储,用时解开。

将请求URL、时间戳、token三者进行合并加盐签名或者缓存用户的ip地址也是不错的选择,服务端校验有效性。

这两种办法的出发点都是:窃取你存储的数据较为容易,而反汇编你的程序hack你的加密解密和签名算法是比较难的。然而其实说难也不难,所以终究是防君子不防小人的做法。


总结

在Web应用中,别再把JWT当做session使用,在绝大多数场景下,传统的cookie-session机制工作得更好;

JWT适合一次性的安全认证,颁发一个有效期极短的JWT,即使暴露了危险也很小。


2 使用JWT代替cookie-session还有如下缺点:

由于JWT要求有一个秘钥,还有对应的算法,生成的令牌看上去不可读,不少人误认为该令牌是被加密的。但实际上秘钥和算法是用来生成签名的,令牌本身不可读是因为进行了base64编码。但是base64编码是可以直接进行解码的。如果JWT中如果保存了敏感的信息,相对于cookie-session将数据存储在服务端来说,更不安全。


3 如何防止表单重复提交问题

网络延迟时,重复点击提交按钮,有可能发生重复提交表单问题。

解决方案:

1.数据库主键唯一。

2.提交成功后重定向。

3.使用 JavaScript 解决,使用标记位,提交后隐藏或不可用提交按钮。 使用 Session 解决: 生成唯一的 Token 给客户端,客户端第一次提交时带着这个 TOken,后台与 Session 中的 进行对比。一样则提交成功并清除 Session 中的 Token。不一样则提交失败。


4 取代JWT方案

有的人说的我看不懂什么方案好像也是个写好的框架做整合我研究研究再写

替代方案PAST

PAST(平台不可知的安全令牌)是安全无状态令牌的规范和参考实现。

与JSON Web Tokens(JWT)不同的是,PAST只允许开发人员进行足够的绑定,而PAST只允许安全的操作。JWT给你“算法敏捷性”,PAST给你“版本化的协议”。你不可能以不安全的方式使用PAST 。


目录
相关文章
|
11月前
|
存储 安全 Java
微服务安全之Token机制:从认证到授权的深度实践指南
本文深入解析微服务架构下Token认证与授权机制,涵盖JWT、OAuth2.0核心原理,结合Spring Boot实战代码,详解Token生成、验证、安全加固及细粒度权限控制,助你构建安全可靠的分布式系统认证体系。
1450 2
|
5月前
|
人工智能 JSON 开发工具
扒开AI Skill的底层:自动断言、数据构造、多模态识别怎么做到的
本文揭秘AI测试落地的三大核心瓶颈:断言脆弱、数据失真、UI定位失效,并提出破局关键——可复用、可验证的“测试Skill”。通过自动断言(规则化比对)、数据构造(生成-校验闭环)、多模态识别(看图说话式定位)三大实战Skill,将AI的语义能力与确定性工具深度协同,让测试从“猜”走向“测”。
|
8月前
|
存储 云安全 弹性计算
阿里云服务器多少钱一年?个人用户、企业和学生购买优惠价格,1年、1个月和1小时收费标准
2026年阿里云服务器价格全解析:个人用户38元起/年,企业199元起/年,学生享300元无门槛代金券;支持年付、月付及按小时计费(低至0.34元/小时),覆盖轻量应用服务器、ECS、GPU等多种机型,附带宽、存储等附加资源收费标准与省钱技巧。
817 1
|
安全 Unix 关系型数据库
3.10 使用tamper绕过时间戳进行注入
3.10 使用tamper绕过时间戳进行注入
643 0
|
12月前
|
人工智能 自然语言处理
如何识别AI生成内容?这几点技术指标是关键
如何识别AI生成内容?这几点技术指标是关键
1822 2
|
存储 前端开发 Java
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
本文介绍了使用Kaptcha插件在SpringBoot项目中实现验证码的生成和验证,包括后端生成验证码、前端展示以及通过session进行验证码校验的完整前后端代码和配置过程。
4386 1
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
成功解决:CentOS7中无法连接网络
这篇文章介绍了如何解决CentOS 7虚拟机无法连接网络的问题。作者猜测问题可能是由于虚拟机软件的网关和CentOS 7系统的网关不一致导致的。文章提供了两种解决方案:修改虚拟网络编辑器的网关或修改CentOS系统的网关和IP地址。作者选择了后者,并演示了如何在CentOS终端中以root用户身份修改IP和网关。
成功解决:CentOS7中无法连接网络
|
Shell Linux 开发工具
设置IDEA的 Terminal 使用 git bash
设置IDEA的 Terminal 使用 git bash
1898 0
设置IDEA的 Terminal 使用 git bash
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
8668 3