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,从一点点到亿点点,我们下篇见!

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

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