天才用户取用户名为null,害我熬夜查到两点......

前几天,看到一个搞笑帖子。

这个天才用户,注册账号的时候,用户名填了个 null

结果后台系统直接懵了,还让这个网友一通排查,从晚上查到凌晨两点!

null是啥?

可能非计算机专业的小伙伴,不知道null是个啥?

简单说下:

null在程序世界里,不是什么炫酷单词,而是一个“空值”的代号。

意思就是:“这里什么都没有。”

举个生活版的例子:

你问我:“你今天吃啥了?” 我说:“没吃。” 这就是 null

不是我吃了空气,而是我真什么都没吃。

所以,当系统看到用户名是null时,它会条件反射地想:

“哦,这里是空的,没填名字。”

结果实际情况是: “人家就是要让自己的名字看起来像空的。”

于是,逻辑崩了。

就像你收快递,单子上收件人写着“无人签收”,快递员当场裂开:

“那我送给谁呢?”

为啥会出这种事?

简单说,就是程序不够聪明,但人够“聪明”。

大多数系统会默认null=“没东西”,而不会特意防有人取这个名字。

因为设计规则的人以为——谁会闲着没事,把自己名字取成“空”呢?

结果总有人证明:

只要规则里有空子,就有人忍不住钻一下。

说到底,这是典型的“人性与规则博弈”:

  • 程序想:大家都是好人。

  • 用户想:那我来试试坏人能干啥。

遇到这种问题咋办?

这种坑,程序员会给出几个解决方案:

  1. 前端拦截在用户注册时,如果输入nullundefined、空格、特殊字符,就直接弹窗: “抱歉,这个名字不太合适。”

  2. 后端兜底就算前端漏了,后台保存数据时也检查一次,看到危险字符直接驳回。 俗称:双保险。

  3. 异常日志+报警一旦有人提交这种奇葩数据,系统自动给维护人员发个提醒—— “哥们,有人又想搞事情了。”

这些措施听着简单,但很多时候是“踩过坑”之后才加上的。

就像家门被小偷撬过一回,你才知道得换个更结实的锁。

为啥会有人故意取这种名字?

我想了想,大概有三种可能:

  1. 好奇心作怪想试试系统会不会崩,跟小孩看到红按钮就想按一下一个道理。

  2. 炫耀心理成功搞崩系统后,可以得意地说:“哈哈,我发现了一个漏洞。”

  3. 恶作剧心态并不为了什么利益,就是单纯想让别人抓狂。

说白了,这不是技术问题,是人性问题

别以为这只是程序员才会遇到的奇葩事。

生活里,null无处不在:

你见了个网友,名字、头像、资料全是空白,你完全不知道对面是谁。

我见过最气人的是,有人直接把微信名改成“文件传输助手”,头像搞得也很相近,你本想自己备份个文件,结果直接发给了这个人。

遇到这种,真的,直接拉黑最省事。

这些“空值时刻”,往往比明显的麻烦更难防,因为你甚至不知道它存在。

写在最后

null本身没错,它只是个代号,一个表示“啥都没有”的符号。

真正让它变成麻烦的,是那份“我就想看看你会不会出事”的心思。

世界上的规则,就像程序代码一样,不可能一次写好一劳永逸。

它永远在和人性赛跑——你加固一层,人就试着绕一圈。 这不是悲观,而是现实。

所以啊,笑归笑,被坑的时候骂两句没关系,重要的是—— 下次防得更严一点,顺便记住一个道理:

世界上最难防的,不是漏洞,而是那些“有心人”的创意。


给大家推荐一下我自己的网站,上面不仅有各种技术文章和学习教程,还提供了程序员学习需要的各种书籍下载,大家可以点击左下角【阅读原文】去看一下~
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值