发布时间:2026-07-25阅读(0)
之前在用pholcus在做数据收集时候,发现个某大厂的URL,当时有点小意外吧。
https://www.xxxxxxxxxxx/u/ssssssssss?is_hot=1#_loginLayer_xxxxxx注:ssssssssss为十位数的数字,原数字经过百度查询能查询到该用户,这里避嫌下。
从这个URL出发,前端路由有可能使用vuex router实现的,而且槽点有不少。首先,你会猜测ssssssssss会是什么,看到/u,瞬间就明白了,它是个用户ID,而且极有可能是 AUTO_INCREMENT ID。然后按这个逻辑,把3295362810换成1、1111111111、1111111112再去访问,结果如下:
https://www.xxxxxxxxxxx/u/1 404https://www.xxxxxxxxxxx/u/1111111111 200https://www.xxxxxxxxxxx/u/1111111112 200
也不知道,你是否干过这事,数据库ID自增,下标改成1亿开始的。其实,还有一个槽点,我当时加个page查询参数,没想到行得通。而且,这个大厂有个要求非登录用户,不能浏览当前用户的下页,只能浏览首页。现在看来,对程序员来说,形同虚设。
https://www.xxxxxxxxxxx/ssssssssss?is_hot=1&page=2 200
对外提供用户ID查询接口,中间也不加密转换处理,实属不该。
可以参考下Google下一页的做法,对外url会有一层转换,而不是直接使用查询参数page

使用数据库自增ID,有个好处,简单快捷递增,使用innodb聚集索引,性能更好。但是,这里还是建议弃用,它有如下劣势:
在这里,推荐下美团分布式ID生成系统Leaf(https://github.com/zhuzhong/idleaf),并且有很详尽的学习和使用文档。
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图