因为 UUID 几乎是唯一的,并且因此应该是很难猜出的,因此可否使用 UUID 直接的代替权限验证?
即:仅在获取 UUID 的时候进行权限验证,后续利用 UUID 进行操作不鉴权直接视为拥有权限?
请问是否有什么风险?比如说 UUID 虽然唯一但是有什么规律进行很轻松的猜测?
1
justfindu 2018-06-01 08:44:45 +08:00 4
what... 永久不过期么... 一朝泄露终身受用 好好好
|
2
yylucifer 2018-06-01 08:46:10 +08:00
如果这个 uuid 是其他用户不可见的。。
那么我想说这不就是 token 么? |
3
SingeeKing OP |
4
justfindu 2018-06-01 08:51:53 +08:00
@SingeeKing 如果有其他相关的需要使用 UUID 关联, 一并修改么. 好好好!
|
5
xkeyideal 2018-06-01 08:53:12 +08:00 1
什么都不考虑在范围内,那还要权限干啥
|
6
88250 2018-06-01 08:53:55 +08:00
加密货币钱包就是这样的嘛。
|
7
SingeeKing OP @justfindu #4 额什么意思?我这里的 UUID 唯一的作用就是将对象获取和权限验证放在了一起。表的物理关联还是使用外键实现的(可以认为修改掉 UUID 字段不会产生任何副作用)
|
8
justfindu 2018-06-01 08:57:06 +08:00
@SingeeKing 好 这就是 token!
|
9
SingeeKing OP @xkeyideal #5
1 主动泄漏什么都能泄漏自然不用考虑 2 HTTPS 通信中间人攻击和 1 一样吧,几乎防不胜防了 3 「工作人员」很少,所有人都互相认识,并且没有泄漏的利益诉求(除非恶作剧不然送给别人别人都不会搞破坏的那种) 主要就是想知道 UUID 如果纯猜测是有规矩可循还是如我所想的很难猜中一个(那个数学逻辑看得我头疼实在看不懂) |
10
xkeyideal 2018-06-01 09:01:39 +08:00
@SingeeKing 你的这种场景,uuid 就变成了 token,内部管理系统用用,没问题的,技术不能解决的可以用行政手段
|
11
cout2013mr 2018-06-01 09:08:15 +08:00
你指的应该是 Oauth 授权吧?如果一个服务通过授权获取固定的 token,其他服务也是使用相同 token,那服务之间岂不是相当于裸奔哥的。内部系统可以这样搞,如果是对外的话,会被人玩死的吧
|
12
misaka19000 2018-06-01 09:08:37 +08:00 via Android
恭喜楼主重新发明了 cookie 的验证策略
|
13
hand515 2018-06-01 10:13:32 +08:00
https 就不能中间人攻击?
|
14
liuxey 2018-06-01 10:41:25 +08:00
权限系统最主要的是分账号、角色、功能管理,全部做完整后,你的这个和 sessionid、cas 中的 token、oauth 的 token 又有啥区别的
|
15
zjp 2018-06-01 10:43:41 +08:00 via Android
别纠结 UUID 了,楼主说的就是 token,只是表示的是一个角色而不是用户。要想满足随机、唯一、不能猜测就用 snowflake
|
16
a7a2 2018-06-01 13:54:21 +08:00
15L 说对了 便是 token 而已。而且可以加上参数一起跟 uuid hash 运算就出一个可变有控制有效期的 token 了
|
17
hahamy 2018-06-01 14:56:50 +08:00
华夏万家 app,手机号注册后登录,只要填写手机号码就可以了,不下发验证码,不用密码,点登录后提示检测中,然后就登录上了,应该就是用的类似的原理
当然也有可能都没用到 uuid,就是 app 生成个 token 标识 |
18
otakustay 2018-06-01 16:01:48 +08:00
这不就是你帮用户生成密码么……
|