Redian新闻
>
md!这代码有毒

md!这代码有毒

科技

你好,我是yes。

刚想周五下午摸个鱼,直接一个钉钉消息打破了我的计划:有个bug。

我说:啥bug?

对方说:刚申请的内部用户的账号登录不上去。

我说:还有这种事,报啥错?

登录的时候报了这个错:

他的密码是这个的:

我瞄了一眼,这明显不含大写啊,你让他密码改成含大写的就行了。

对方有点懵:关键这密码是初始生成的密码啊!他现在登都登不上咋改!管理员重置密码的功能也都没做。

我:???初始密码生成竟然没大写。

我直接一波探索,找到了那块逻辑:

乍一看没啥毛病。。实则毛病挺大:

首先用的是 hutool 的 RandomUtil。

从代码逻辑来看,是想通过  RandomUtil.randomStringUpper(4); 得到 4 个大写随机字符,然而:

很显然,写这个逻辑的同学被这个方法名骗了,咱平日编码严谨点还是得点进去瞄一眼逻辑的。

所以通过 RandomUtil.randomStringUpper 并不一定能得到大写字母,因为可能都随机到数字。

如果说第一个坑我还能理解这位同学,那么第二坑我觉得真的有点秀了。

第二个坑:String randomString = RandomUtil.randomString(allStr.toString(), 18);

这又是几个意思??

好不容易 allStr 拼接了含大写、小写、数字、特殊字符,然后就搁这从中随机取 18 次?

那么问题来了,这18次一定能随机到大写吗?一定能随机到数字吗??

前面辛辛苦苦拼的各种格式的字符,最后靠随机取是吧,一切随缘咯。

你看看,这逻辑实现是不是有点毒。

不过回头想想,我来这公司也挺久了,是第一次收到这个反馈。。。说明之前运气确实不错。

这种随缘代码使用频率不高确实不容易发现问题。

不扯了,突然钉钉又推了一个消息。。线上有报错,容我去排查一波,有必要的话下周分享!

我是yes,我们下篇见!

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
萬瑪才旦(藏語:?????????????,Péma Tséten,12/3/1969 – 5/8/2023) 才情橫溢的藏族導英伟达或吊打AMD!预计独霸AI芯片市场90%的份额这居然是他第五次来ONE THIRD!员工盗代码换皮肤自营新游戏被刑拘:游戏代码为何是公司财产?告别2015-2023:我们这代创业者当 GPT 遇到低代码:低代码平台 AIGC 开发落地实战 | ArchSummit 热门演讲实录发靶向MDSC的策略(1):抑制MDSC向肿瘤微环境的转运Linux 之父“开炮”!曾喊 AMD 真香,今炮轰 AMD:怒批 fTPM “愚蠢”、“破玩意儿”仅8670行代码,Linux内核第一版 (v0.01) 开源代码解读趣图:这代码太酷了吧GPT-4写代码不如ChatGPT,误用率高达62%!加州大学两位华人开源代码可靠性基准RobustAPI用一个月重构了同事写的烂代码,我总结了8条重写烂代码的经验!0代码训练GPT-5?MIT微软证实GPT-4涌现自我纠错能力,智能体循环根据反馈让代码迭代!靶向MDSC的策略(2):清除MDSC或诱导MDSC的分化趣图:​喏,​看我这代码抄的咋样?🤓你知道这代表什么吗:微软发布基于LLM的代码生成神器,动动嘴就能写代码!加州百年啤酒厂"Ancho"倒闭!居民不舍:这代表了旧金山的味道对标GPT-4代码解释器!港中大让模型写代码解决数学难题,得分超越GPT-4食品、能源价格、租金统统飙升,澳人快活不起了!压力最大的竟是这代人致命缺陷这代年轻人真的恐婚恐育吗?辐射超标! 在用这代iPhone的华人们小心啦! 法国已经禁售它了!我们这代人,还有退路吗?一群窝囊废张扬对话水庆霞:球场40年,我做好这代人的事基于量化分析的低代码平台体验优化实践 | 低代码技术内幕仅 8670 行代码,Linux 内核第一版 (v0.01) 开源代码解读我们这代人,有没有“出头”的希望?Linux 内核第一版 (v0.01) 开源代码解读,仅 8670 行代码!长篇小说《如絮》第一百四十九章 旧金山-新加坡-2005年 不期而遇全现金购房比例增至33%,这代人是背后的推动力量!凯旋门上的四块著名浮雕雷军写的代码又上热搜了!写了十多年代码,熬过无数通宵这么美妙的超导梦想,不敢奢望在我们这代人手上实现
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。