JSON Web Token 如何保证 token 的安全性?

2019-08-22 16:22:16 +08:00
 Zach369

事情的起因: 之前一直跟安卓和 ios 做 api,使用 jwt 的形式进行交互。

今天突发奇想,如何保证 token 的安全性那。假如我拿到 token 就可以调用服务器端的任何接口。这是多么的可怕。

目前为上线的项目都是 https。

求解???
7632 次点击
所在节点    程序员
36 条回复
iyaozhen
2019-08-23 00:12:48 +08:00
@Varobjs 日志不是越详细越好呀 打出关键信息就行,何为关键,就需要一些经验了,多查几次线上问题就知道了

即使 debug 日志也不要打密码,你说的密码配置错了,连接的时候错误信息会提示呀
xiadong1994
2019-08-23 02:25:33 +08:00
@tachikomachann jwt 有 exp 的 claim 啊
skiy
2019-08-23 07:22:06 +08:00
jwt 就没啥安全性可言。之前了解过。还不如直接用 token
fengpan567
2019-08-23 08:25:43 +08:00
为什么要保证?都拿到了你的 token 或者 cookie 了,说明安全问题已经出现了
Perolong
2019-08-23 08:33:53 +08:00
因为一般一个 token 只是能拿到当前用户的权限,并不是 admin 级别的啊,你自己的 token 是删不了其他用户的东西的,如果可以,说明后台偷懒了
HarryQu
2019-08-23 08:47:38 +08:00
设备生产一个 唯一的 device id, 登录的时候 存储 device id。
同时验证 token 和 deviceid。
Leigg
2019-08-23 09:23:04 +08:00
尝试过 jwt,认为不是一个适用于登录登出场景的方案,用户修改密码,注销登陆都不好解决,或者说都需要数据库来辅助实现,倒不如直接使用 token。有 redis 的辅助,可以很方便实现在线用户数统计,用户实际在线时长统计。所以啊,jwt 还是更适用于一次性的数据传输。
iamdj
2019-08-23 09:34:33 +08:00
额 按道理说调用后台的话 先解析 token 获取比如说用户名 然后根据用户名再查这个用户有没有权限类似的 怎么就会调用所有接口呢。
print1024
2019-08-23 10:21:24 +08:00
jwt 只是为了方便系统间交互,并不安全,想安全那就要在网络传输方面下功夫
dosmlp
2019-08-23 10:32:47 +08:00
用 https 防劫持,至于端的安全你是无能为力的
Vegetable
2019-08-23 10:34:42 +08:00
你凭什么能拿到别人的 token?
nikandaoleshenme
2019-08-23 10:42:02 +08:00
1 楼回答已经结贴了,sf 发的帖,又跑这来了
unco020511
2019-08-23 11:01:05 +08:00
别人拿到你的 token 也没用,你接口如果有签名校验,怎么攻击你,参考支付宝和微信的接口
tachikomachann
2019-08-23 11:09:57 +08:00
@xiadong1994 #22 jwt 的 exp 没法实现服务端主动失效吧?比如用户登出后注销所有会话,用户改密码了,用户被禁用了。
yule111222
2019-08-23 11:11:56 +08:00
后端也不是有一个 token 就能访问所有服务的呀。。。没有权限控制?
luozic
2019-08-23 15:53:30 +08:00
token 有啥?没有 RABC 的锅找 token 背?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594225

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX