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 。


目录
相关文章
|
前端开发 API C#
c#实现简单Token口令验证
  最近一个项目发现手机验证码总是被人盗刷,一秒钟刷了1百多个,很明显这种行为是通过软件自动提交的,自动发帖机原理类似,解决这个问题目前有两个方案。   出现这个问题原因:请求手机验证码Api时没有任何带任何验证,只要请求了手机号正确就执行发送操作,软件或代码很容易伪造请求过程。   解决方案有很多种,可以选择下面一种或几种组合起来使用。   方案1:用户获取手机验证码时候弹出图片验证码,输入后再发送。
1604 0
|
4月前
|
安全 NoSQL Java
JWT和Security 登录权限判断和token访问和让token失效
JWT和Security 登录权限判断和token访问和让token失效
|
6月前
|
C语言
C的令牌(Token)
C的令牌(Token)。
34 0
|
6月前
|
云安全 弹性计算 安全
AK泄露了,怎么办?
AccessKey(包含AccessKey ID和Secret)是程序访问的凭证,无异于打开云上资源的大门钥匙,保管好AK是保障云上安全最重要的事情,甚至没有之一。
106438 8
|
6月前
|
JSON 安全 Java
JWT令牌技术
JSON Web Token (JWT) 是一种安全的、自包含的信息传输格式,常用于身份验证和信息交换。它由Header、Payload和Signature三部分组成,其中Signature用于验证消息完整性和发送者身份。JWT包含用户信息,服务器登录后发送给客户端,客户端使用JWT证明身份访问受保护资源。在Java项目中,可以使用`java-jwt`库进行JWT的生成和解析。要开始使用JWT,需在Maven或Gradle中添加相关依赖,并实现生成和解析JWT的方法。此外,文中还提供了一个简单的Java Web应用示例,展示如何在用户登录和访问受保护资源时使用JWT。
120 0
|
6月前
JWT令牌的使用
JWT令牌的使用
93 0
|
6月前
通过jwt基于token实现登陆认证通过jwt基于token实现登陆认证
通过jwt基于token实现登陆认证通过jwt基于token实现登陆认证
44 0
|
存储 安全 JavaScript
别再使用 JWT 作为 Session 系统!问题重重且很危险
首先需要说明 JWT 坊间流传的优势 易于水平扩展? 易于使用? 更加灵活? 更加安全? 内置过期时间功能? 无需询问用户「本网站使用 Cookies」? 防止 CSRF 攻击? 更适用于移动端? 适用于阻止 Cookies 的用户?
|
存储 机器学习/深度学习 JSON
【安全】如果您的JWT被盗,会发生什么?
【安全】如果您的JWT被盗,会发生什么?
|
存储 JSON 安全
别再使用 JWT 作为 Session 系统!问题重重且很危险。
别再使用 JWT 作为 Session 系统!问题重重且很危险。