JWT 的token被盗用了怎么防止

这里有bug 2018-07-30 10:06:21
无状态的JWT 把token返回给用户A,假如现在B用户盗用了这个token,那岂不是也能携带这个token去请求了?如果说服务端吧token存起来再次校验,那就成有状态的,那为嘛不直接使用session,请教下各位大虾
...全文
11453 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
买房动力十足 2021-04-12
  • 打赏
  • 举报
回复 1
只能说在token里面加入用户id标识, 接口传过来的用户id 跟token里面的用户id对比 不一致就拦截 一致就标识是同一个人, 猜对别个memberId的概率太小了
aliang 2020-11-21
  • 打赏
  • 举报
回复
引用 17 楼 java大狗 的回复:
引用 15 楼 dogMasterGo 的回复:
[quote=引用 7 楼 紫剑_水 的回复:]token被盗了怕什么,token自身加密了,你自己也可以在token基础上拼接字符串,别人拿什么破
我也是这样处理的,但还是怕抓包,放在请求头里也怕被抓吗
打个比方有个人不注意,把别人的token拿过来,权限就大了,确实会有这类问题,就算加密了也没用。[/quote] 比如当前上网设备中毒、路由总出入口被拦截了,这样子就可以冒用别人的token了
流年! 2020-10-14
  • 打赏
  • 举报
回复
引用 5 楼 qq_30736369 的回复:
你可以加一些签名 或者把盐值调浓点
被盗用和签名盐值有什么关系?
java大狗 2020-09-27
  • 打赏
  • 举报
回复
引用 15 楼 dogMasterGo 的回复:
引用 7 楼 紫剑_水 的回复:
token被盗了怕什么,token自身加密了,你自己也可以在token基础上拼接字符串,别人拿什么破
我也是这样处理的,但还是怕抓包,放在请求头里也怕被抓吗
打个比方有个人不注意,把别人的token拿过来,权限就大了,确实会有这类问题,就算加密了也没用。
dogMasterGo 2020-09-09
  • 打赏
  • 举报
回复 1
引用 11 楼 一只闪闪发光的小叔叔 的回复:
[quote=引用 10 楼 isFuong 的回复:] [quote=引用 8 楼 xuxiake的博客 的回复:] 你可以做成单回话登录,就是说一个账号在一种类型的客户端只能登录一个地方,这样当token被盗了,你很快就能知道了,或者是你在token中增加ip验证,这样token脱离ip也是无法验证通过的,方法还是挺多的
如果在同一台电脑登陆,同一台电脑抓包恶意请求呢[/quote] 兄弟,在同一台电脑上登录再抓包,那这个人是不是闲的,玩呐[/quote]抱歉,安全测试可不管...就是这样闲着
dogMasterGo 2020-09-09
  • 打赏
  • 举报
回复
引用 7 楼 紫剑_水 的回复:
token被盗了怕什么,token自身加密了,你自己也可以在token基础上拼接字符串,别人拿什么破
我也是这样处理的,但还是怕抓包,放在请求头里也怕被抓吗
靈龍靈 2020-08-24
  • 打赏
  • 举报
回复
引用 12 楼 qq_41656289 的回复:
[quote=引用 11 楼 一只闪闪发光的小叔叔 的回复:][quote=引用 10 楼 isFuong 的回复:] [quote=引用 8 楼 xuxiake的博客 的回复:] 你可以做成单回话登录,就是说一个账号在一种类型的客户端只能登录一个地方,这样当token被盗了,你很快就能知道了,或者是你在token中增加ip验证,这样token脱离ip也是无法验证通过的,方法还是挺多的
如果在同一台电脑登陆,同一台电脑抓包恶意请求呢[/quote] 兄弟,在同一台电脑上登录再抓包,那这个人是不是闲的,玩呐[/quote] 木马啊兄die[/quote] 所以有些网站会提示不要再公共场所进行登录,还有不要乱下载一些东西,基本能避免
靈龍靈 2020-08-24
  • 打赏
  • 举报
回复
请不要在公共场所的电脑登录
百花街小王子 2020-07-08
  • 打赏
  • 举报
回复
引用 11 楼 一只闪闪发光的小叔叔 的回复:
[quote=引用 10 楼 isFuong 的回复:] [quote=引用 8 楼 xuxiake的博客 的回复:] 你可以做成单回话登录,就是说一个账号在一种类型的客户端只能登录一个地方,这样当token被盗了,你很快就能知道了,或者是你在token中增加ip验证,这样token脱离ip也是无法验证通过的,方法还是挺多的
如果在同一台电脑登陆,同一台电脑抓包恶意请求呢[/quote] 兄弟,在同一台电脑上登录再抓包,那这个人是不是闲的,玩呐[/quote] 木马啊兄die
  • 打赏
  • 举报
回复
引用 10 楼 isFuong 的回复:
[quote=引用 8 楼 xuxiake的博客 的回复:] 你可以做成单回话登录,就是说一个账号在一种类型的客户端只能登录一个地方,这样当token被盗了,你很快就能知道了,或者是你在token中增加ip验证,这样token脱离ip也是无法验证通过的,方法还是挺多的
如果在同一台电脑登陆,同一台电脑抓包恶意请求呢[/quote] 兄弟,在同一台电脑上登录再抓包,那这个人是不是闲的,玩呐
isFuong 2020-03-02
  • 打赏
  • 举报
回复
引用 8 楼 xuxiake的博客 的回复:
你可以做成单回话登录,就是说一个账号在一种类型的客户端只能登录一个地方,这样当token被盗了,你很快就能知道了,或者是你在token中增加ip验证,这样token脱离ip也是无法验证通过的,方法还是挺多的
如果在同一台电脑登陆,同一台电脑抓包恶意请求呢
  • 打赏
  • 举报
回复
引用 6 楼 wsltsga88 的回复:
[quote=引用 3 楼 编程有钱人了 的回复:] 重启IIS服务,这样jwt token 就会立即过期
你知道jwt是啥吗?重启啥都没用[/quote] 可以修改验证服务器时间,这样就可以让jwt失效。。。
xuxiake的博客 2019-09-16
  • 打赏
  • 举报
回复 2
你可以做成单回话登录,就是说一个账号在一种类型的客户端只能登录一个地方,这样当token被盗了,你很快就能知道了,或者是你在token中增加ip验证,这样token脱离ip也是无法验证通过的,方法还是挺多的
_荡剑式_ 2019-04-30
  • 打赏
  • 举报
回复
token被盗了怕什么,token自身加密了,你自己也可以在token基础上拼接字符串,别人拿什么破
wsltsga88 2019-04-21
  • 打赏
  • 举报
回复
引用 3 楼 编程有钱人了 的回复:
重启IIS服务,这样jwt token 就会立即过期
你知道jwt是啥吗?重启啥都没用
qq_30736369 2019-04-10
  • 打赏
  • 举报
回复
你可以加一些签名 或者把盐值调浓点
编程有钱人了 2019-03-09
  • 打赏
  • 举报
回复
看错了,应该是重启web服务器,看你服务器端用的什么了!
编程有钱人了 2019-03-09
  • 打赏
  • 举报
回复
重启IIS服务,这样jwt token 就会立即过期
哈希塞特 2018-08-11
  • 打赏
  • 举报
回复
jwt token被盗没办法,只能等他过期。你可以把token的过期时间弄短些,十几分钟到半小时就行。如果token放在头部,并且用的是https,这样很难被盗。话又说回来,连token都能被盗的用户说明他太傻,肯定乱点不该点的东西
JWT的用法: 客户端接收服务器返回的JWT,将其存储在Cookie或localStorage中。 此后,客户端将在与服务器交互中都会带JWT。如果将它存储在Cookie中,就可以自动发送,但是不会跨域,因此一般是将它放入HTTP请求的Header Authorization字段中。当跨域时,也可以将JWT被放置于POST请求的数据主体中。 JWT问题和趋势: JWT不仅可用于认证,还可用于信息交换。善用JWT有助于减少服务器请求数据库的次数。 生产的token可以包含基本信息,比如id、用户昵称、头像等信息,避免再次查库 存储在客户端,不占用服务端的内存资源 JWT默认不加密,但可以加密。生成原始令牌后,可以再次对其进行加密。 当JWT未加密时,一些私密数据无法通过JWT传输。 JWT的最大缺点是服务器不保存会话状态,所以在使用期间不可能取消令牌或更改令牌的权限。也就是说,一旦JWT签发,在有效期内将会一直有效。 JWT本身包含认证信息,token是经过base64编码,所以可以解码,因此token加密前的对象不应该包含敏感信息,一旦信息泄露,任何人都可以获得令牌的所有权限。为了减少盗用,JWT的有效期不宜设置太长。对于某些重要操作,用户在使用时应该每次都进行进行身份验证。 为了减少盗用和窃取,JWT不建议使用HTTP协议来传输代码,而是使用加密的HTTPS协议进行传输。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧