绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
只因为名字叫True,她被苹果iCloud服务器拒绝了
2021-03-11 11:12:56


作者 | 贾浩楠 转自 | 量子位 公众号 QbitAI

国外的一个苹果用户,申请iCloud服务,被匪夷所思的原因拒绝了。

不但拒绝,她的ID还直接被封了6个月。

这一切,都是因为她的名字里有个true

而且,这个问题还真不好办,推特上一位工龄30年的老程序员劝她:

解决这个问题,好的办法还是改名…

一个“true”就能干扰到苹果系统?踩到这个坑的用户,真的只能改名吗?

“命犯编程”的尴尬

众所周知,在编程语言中,true(真)是一个逻辑值,与“false”相对。true在编程语句中代表1或大于1的数,反之false代表0或null。

而这位不幸的大姐,名叫Rachel True,是美国的一位演员、模特。

True作为姓氏确实很罕见,但是这个好听的名字在申请iCloud时,却成了大的麻烦。

她在输入名字时,姓氏中的t,没有大写,直接敲上了“true”。

而在苹果返回的结果中,可以看到系统无法将true赋值给变量lastName

也就是说,本来应该作为字符串的“true”,直接被系统认定成了布尔值。

这个错误,导致iCloud的申请进程终止。

并且,据Rachel True说,苹果还直接将她的ID锁定6个月。

原因没有细说,不过很有可能是系统判定流程异常,采取了规避恶意SQL注入的防御性手段。

过去的几天,她都在不断地向苹果公司申诉,和AppleSupport周旋,平均每天要花两三个小时。

但是问题根本解决不了,iCloud服务费却依然再收。

当然,这也怪不得苹果,true在代码中,毕竟已经用了几十年。

而大家分析,苹果的代码中,没有强制将所有进入lastName的值识别为字符串的机制。

所以解决这个问题,要么在输入时给名字前后加单引号,要么真的只能改名了。

那些比“true”还难搞的名字

程序员中流传着一个经典的笑话Bobby Tables

小孩名叫Robert’); DROP TABLE students,结果把整个学校的学生资料都搞没了。

这下你们应该明白对输入做净化处理有多重要吧??

不少人都说,这次的事件,简直就是现实版Bobby Tables。

除了true,还有很多人的名字都把系统搞崩溃过。

比如,有姓Root的、有姓Self的,当然还有姓“Null”的。

Null这个姓还并不罕见,很多人出门连买机票都很困难。外媒报道过一位Jennifer Null,结婚后改了姓,才能正常使用各种服务。

推特上,有一位从荷兰来的程序员小姐姐,她的姓氏是van Os,当年毕业入职时,公司用bash script建立新员工账号。

结果,操作时没有在名字上加引号,姓氏中的空格直接搞崩了整个脚本。

其实,这种问题,除了给用户本人带来诸多不便,在系统安全上也存在很大的安全隐患。

就像很多人提醒的那样,每一个字符串的误识别,都是黑客可以利用的SQL注入攻击机会。

好在,我们中国用户不用担心这个问题~

参考链接:
https://twitter.com/RachelTrue/status/1368004197166108676

分享好友

分享这个小栈给你的朋友们,一起进步吧。

分布式系统论文分享
创建时间:2019-12-17 14:59:55
分布式系统(机器学习、图计算)
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 皮皮卡
    栈主

小栈成员

查看更多
  • germo
  • ?
  • choubou
  • abcjob
戳我,来吐槽~