获得徽章 5
- 自从23年,买了k60pro 手机后,基本每天都打王者,之前卸载了又下,卸载了又下。怎么现在还是那么喜欢玩。难道是越菜越爱玩,而且只玩中路,中路只玩小乔和杨玉环,这个赛季用小乔打上王者,然后基本都是用杨玉环打巅峰赛到一千八,我感觉巅峰赛一千八是我的能力分水岭了。83
- 评论2
- 你他妈要问我为什么一个注册功能要写几百行代码?
只因为几百行代码全是在防小人。
5 行接收用户名、密码、账号,3 行校验不能等于空,再 5 行密码加密存储,6 行存入数据库,7 行发送注册成功短信,再 5 行返回结果。自测的时候一切顺利,完美交付。
直到上线第二天,同一个 IP、同一个设备、同一个密码,用户名从 test0001 注册到 test27783。
问为什么只注册到 27783?因为短信平台只有 27783 条的额度,全是小人脚本批量提交。
所以又写了 40 行防止恶意注册,然后还加了 IP 限流、图形验证码、正则校验、空格过滤、境外号适配、设备指纹、行为风控,还要防并发冲突。
搞活动期间,几百几千个人同时注册,直接就出现了两个用户同时提交了相同的用户名,爬虫直接绕过了前端校验,就又要加数据库加唯一索引,但是会爆主键冲突,再上 Redis 分布式锁防重复,才能说暂时能用。
有时候发短信会翻车,发了验证码都收不到消息,又得加短信的重试机制,三家供应商轮询,失败自动重试三次,三状态异步回调,通道动态降级,超时自动补发,用户点收不到验证码,再触发一次。结果又有小人做脚本,点一整天收不到验证码,又要加单日上限,然后就出现正常用户其他地方验证码又收不到。这还都只是一个注册,要上其他功能受得了吗?展开85
![[擦汗]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_38.2d77d3e.png)
,我就是那种没用系统化就坚持不下去,每天东搞一下西搞一下的![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)