Redian新闻
>
一个看不见的bug???

一个看不见的bug???

科技

你好,我是yes。

还记的这篇文章吗?

md!这代码有毒

这个才过多久,tmd又跟我反馈说有bug。

我说:啥bug?

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

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

登录的时候报了这个错:

我一看还好还好,跟上一次不一样的错,不然我都觉得我穿越回去了。

我脑子都不动一下,直接回复:是不是输入空格了?我看之前的逻辑是不会自动去除首尾空格的。

对方答:

我不信邪,要到账号密码(密码是建立账号后通过邮箱发送的),自己实验了一下,还真的登不上去。

奇了怪了,这块逻辑我看了下,实现很简单,大概逻辑简化后的代码如下:

User user = userService.getOne(username,password);
if (Objects.isnull(user)) {
 throw new Exception("用户或密码错误");
}

这里的 username 是员工姓名,这个实现我觉得很奇葩...重名了咋办?

搜索条件加了密码避免了重名的情况....

但万一密码一样且重名呢??

理论上这个概率比较低,因为密码够复杂,长度必须为 18 位,且必须包含字母大小写、数字和特殊符号,但是确实是有这个可能,所以为啥不能用手机号当登录账号呢?

算了,不纠结这个,还是来看看为啥登录不上去吧!

看着报错,肯定就是 user 没找到呗,那么我自己输入了一遍账号和密码,确认没输错,于是就怀疑起密码,难道是邮寄发送的密码和数据库实际存储的不一样?

我登上数据库,利用 username 查询这条记录,想对比下密码,发现竟然找不到这条记录??

(假设这个 username 是 aaa)

select * from user where username='aaa';

我的发?难道是账号没生成?

因为发邮件和数据库保存账号肯定不是一个事务操作,所以有几率会发生这种情况。

随即我按照 id 倒序取最新五条看看最近的记录都是啥,又发现有 aaa 这条记录???

我的发?见鬼了吗?

突然开始怀疑这个 username 的格式,直接在阿里云 dms 上点开这个字段,果然发现了猫腻!

可以看到名字中间有红点,而正常的名字中间都是没红点的,那么这个红点是什么玩意?

我把红点拷贝出来,直接一个urlEncode,从界面可以看到输入那边完全看不出有任何东西,但是实际 encode 是有值的:

%E2%80%8B 这又是啥玩意?我直接一个搜索:

零宽空格!!好吧,懂了,破案了,怪不得数据没匹配上!

简单理解就是这个字符正常情况下肉眼不可见,但是它确实存在,所以手输的 aaa 匹配不上存在数据库里面的 aaa,因为数据库的aaa夹了看不见的"内鬼"啊!。

除了零宽空格,还有别的零宽字符,比如零宽非断空格符、零宽度连字符等等,特性都是非打印,即肉眼不可见

它们可以用来实现隐形水印或者信息加密。

我找了个网站,咱们看看效果:

比如我将'你好'和'好个屁'混合了一下,得到右边的'你好'。

此时复制右边的'你好',decode 以下就能得到隐写的'好个屁':

原理也很简单,将要加密的字符转成二进制,然后按照一定的规则翻译,比如1转成零度空格符、0转成零宽非断空格符,字母间隔用零宽连接符分隔。

然后解密的时候按照上述规则翻译过来即可。

网址贴这里的,有兴趣的可以自己去玩玩 :https://yuanfux.github.io/zero-width-web/

最后我直接把这个姓名重新编辑了一下就好了,操作人员因为是从工单上复制姓名,所以才搞出了这个零宽字符,后续让他手输!

然后再宣传下我这边提供两个服务

  1. 简历修改,100一次
  2. 模拟面试,300一次(一小时)

如果没面试机会的,可能是简历问题比较大,之前已经帮助很多小伙伴拿到 offer 啦!有兴趣的读者可以加我微信联系我。

微信号:yes_oba

期待下一次内部用户的账号登录不上去的情况!

我是yes,从一点点到亿点点,我们下篇见!

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

戳这里提交新闻线索和高质量文章给我们。
相关阅读
看不见的商品战争!比巴以冲突更残酷!商务舱躺飞去看巴黎奥运?最佳锁票时间到,56K点数/1000美元出头即可拿下,外送大家一个好玩的Bug被浪潮卷起的产品经理,须苦练看不见的基本功一个档案袋装一生:看不见的材料,剪不断的烦恼高迪的奎尔公园刀郎的罗刹海市五个亿花在看不见的地方,我却心安了看不见的问题Attention机制竟有bug?Softmax是罪魁祸首,影响所有Transformer汉莎航空三遇 之一 六国游变成七国游在你看不见的地方,AI阻止了5000多次自杀太黑了!悉尼女子吐槽奇葩房东:一条几乎看不见的划痕要赔偿1000澳元!租房有时候遇到这种事只能自认倒霉!8年了,Transformer注意力机制一直有Bug?上山下鄉赤腳醫视障登山者×珠峰队长:《看不见的峰顶》成都首映+现场交流这个优秀的学生为什么休学?这种看不见的痛苦,是不是你正在经历的……当一个看不见的女孩,决定独自坐高铁近墨者不黑,谁能做到?上海、沈阳、烟台、杭州、柳州、武汉、徐州 | 《看不见的顶峰》全国点映观众招募中在你看不见的地方,AI阻止了5000多次自杀。在乡村,看不见的校园欺凌李佳琦翻车事件幕后:那只看不见的手看不见的海澜之家,门店开得比麦当劳还多看不见的敌人:雷暴哮喘袭击北方【万有青年】看见,看不见的她们!线下沙龙邀请你来~《看不见的顶峰》定档10.27,观影团招募同步进行,记录亚洲首位登顶珠峰盲人攀登壮举bug怎样算修完?浅谈团队分布式bug管理 —— git-poison简单易用的bug管理工具压垮无数婚姻的,是这件看不见的小事【双语视频】全球热浪:看不见的杀手 | 教师节商论订阅特惠导演到场 | 川渝双城开启《看不见的顶峰》点映,记录亚洲首位盲人登顶珠峰一个看不见的人,想要独自出行《看不见的顶峰》十月路演开启,北京点映观众招募中佛山90后班主任教育日志刷屏全网:没有差劲的孩子,只有看不见的爸妈《看不见的顶峰》十月路演继续,全国点映观众招募中《看不见的顶峰》点映超过170余场,豆瓣、猫眼打分需要您的支持
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。