可否利用 UUID 代替权限验证

2018-06-01 08:40:59 +08:00
 SingeeKing

因为 UUID 几乎是唯一的,并且因此应该是很难猜出的,因此可否使用 UUID 直接的代替权限验证?

即:仅在获取 UUID 的时候进行权限验证,后续利用 UUID 进行操作不鉴权直接视为拥有权限?

  1. 用户抓包主动泄漏 UUID 不在风险考虑范围内
  2. 与服务器全 HTTPS 通信因此各种劫持不在风险考虑范围内
  3. 工作人员泄漏 UUID 不在考虑范围内

请问是否有什么风险?比如说 UUID 虽然唯一但是有什么规律进行很轻松的猜测?

3372 次点击
所在节点    问与答
18 条回复
justfindu
2018-06-01 08:44:45 +08:00
what... 永久不过期么... 一朝泄露终身受用 好好好
yylucifer
2018-06-01 08:46:10 +08:00
如果这个 uuid 是其他用户不可见的。。

那么我想说这不就是 token 么?
SingeeKing
2018-06-01 08:49:36 +08:00
@justfindu #1 一个 UUID 所对应的对象「生命周期」 15 天左右,过了这个周期操作就没有意义了(所有操作逻辑上都是已完成不会返回任何信息也无法执行任何操作)

@yylucifer #2 Token 是对用户唯一而这里的 UUID 是对对象唯一,多个用户可以拿到一个对象的 UUID
justfindu
2018-06-01 08:51:53 +08:00
@SingeeKing 如果有其他相关的需要使用 UUID 关联, 一并修改么. 好好好!
xkeyideal
2018-06-01 08:53:12 +08:00
什么都不考虑在范围内,那还要权限干啥
88250
2018-06-01 08:53:55 +08:00
加密货币钱包就是这样的嘛。
SingeeKing
2018-06-01 08:55:54 +08:00
@justfindu #4 额什么意思?我这里的 UUID 唯一的作用就是将对象获取和权限验证放在了一起。表的物理关联还是使用外键实现的(可以认为修改掉 UUID 字段不会产生任何副作用)
justfindu
2018-06-01 08:57:06 +08:00
@SingeeKing 好 这就是 token!
SingeeKing
2018-06-01 08:59:39 +08:00
@xkeyideal #5
1 主动泄漏什么都能泄漏自然不用考虑
2 HTTPS 通信中间人攻击和 1 一样吧,几乎防不胜防了
3 「工作人员」很少,所有人都互相认识,并且没有泄漏的利益诉求(除非恶作剧不然送给别人别人都不会搞破坏的那种)

主要就是想知道 UUID 如果纯猜测是有规矩可循还是如我所想的很难猜中一个(那个数学逻辑看得我头疼实在看不懂)
xkeyideal
2018-06-01 09:01:39 +08:00
@SingeeKing 你的这种场景,uuid 就变成了 token,内部管理系统用用,没问题的,技术不能解决的可以用行政手段
cout2013mr
2018-06-01 09:08:15 +08:00
你指的应该是 Oauth 授权吧?如果一个服务通过授权获取固定的 token,其他服务也是使用相同 token,那服务之间岂不是相当于裸奔哥的。内部系统可以这样搞,如果是对外的话,会被人玩死的吧
misaka19000
2018-06-01 09:08:37 +08:00
恭喜楼主重新发明了 cookie 的验证策略
hand515
2018-06-01 10:13:32 +08:00
https 就不能中间人攻击?
liuxey
2018-06-01 10:41:25 +08:00
权限系统最主要的是分账号、角色、功能管理,全部做完整后,你的这个和 sessionid、cas 中的 token、oauth 的 token 又有啥区别的
zjp
2018-06-01 10:43:41 +08:00
别纠结 UUID 了,楼主说的就是 token,只是表示的是一个角色而不是用户。要想满足随机、唯一、不能猜测就用 snowflake
a7a2
2018-06-01 13:54:21 +08:00
15L 说对了 便是 token 而已。而且可以加上参数一起跟 uuid hash 运算就出一个可变有控制有效期的 token 了
hahamy
2018-06-01 14:56:50 +08:00
华夏万家 app,手机号注册后登录,只要填写手机号码就可以了,不下发验证码,不用密码,点登录后提示检测中,然后就登录上了,应该就是用的类似的原理
当然也有可能都没用到 uuid,就是 app 生成个 token 标识
otakustay
2018-06-01 16:01:48 +08:00
这不就是你帮用户生成密码么……

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

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

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

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

© 2021 V2EX