生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看

生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看

ADVERTISEMENT

國外的一個蘋果使用者,申請iCloud服務,被匪夷所思的原因拒絕了。

不但拒絕,她的ID還直接被封了6個月。

這一切,都是因為她的名字裡有個true。

而且,這個問題還真不好辦,推特上一位30年資歷的的老程式設計師勸她:

解決這個問題,最好的辦法還是改名…

生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看

 

一個「true」就能干擾到蘋果系統?踩到這個坑的使用者,真的只能改名嗎?

「命犯程式設計」的尷尬

眾所周知,在程式語言中,true(真)是一個邏輯值,與「false」相對。true在程式設計語句中代表1或大於1的數,反之false代表0或null。

而這位不幸的大姐,名叫Rachel True,是美國的一位演員、模特兒。

True作為姓氏確實很罕見,但是這個好聽的名字在申請iCloud時,卻成了大麻煩。

生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看

她在輸入名字時,姓氏中的t,沒有大寫,直接敲上了「true」。

而在蘋果返回的結果中,可以看到系統無法將true指定敍述給變量lastName。

也就是說,本來應該作為字串的「true」,直接被系統認定成了布林。

這個錯誤,導致iCloud的申請行程終止。

生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看

並且,據Rachel True說,蘋果還直接將她的ID鎖定6個月。

原因沒有細說,不過很有可能是系統判定流程異常,採取了規避惡意SQL注入的防禦性手段。

生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看過去的幾天,她都在不斷地向蘋果公司申訴,和AppleSupport周旋,平均每天要花兩三個小時。

但是問題根本解決不了,iCloud服務費卻依然在收。

當然,這也怪不得蘋果,true在程式碼中,畢竟已經用了幾十年。

而大家分析,蘋果的程式碼中,沒有強制將所有進入lastName的值辨識為字串的機制。

所以解決這個問題,要嘛在輸入時給名字前後加單引號,要嘛真的只能改名了。

那些比「true」還難搞的名字

程式設計師中流傳著一個經典的笑話Bobby Tables。

生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看

小孩名叫Robert'); DROP TABLE students,結果把整個學校的學生資料都搞沒了。

這下你們應該明白對輸入做淨化處理有多重要吧??

不少人都說,這次的事件,簡直就是現實版Bobby Tables。

除了true,還有很多人的名字都把系統搞崩潰過。

比如,有姓Root的、有姓Self的,當然還有姓「Null」的。

Null這個姓還並不罕見,很多人出門連買機票都很困難。外媒報導過一位Jennifer Null,結婚後改了姓,才能正常使用各種服務。

推特上,有一位從荷蘭來的程式設計師,她的姓氏是van Os,當年畢業入職時,公司用bash script建立新員工帳號。

生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看

結果,操作時沒有在名字上加引號,姓氏中的空格直接搞垮了整個腳本。

生來就姓「True」也不行?她的iCloud帳戶被封鎖6個月,網友:改姓NULL試試看

其實,這種問題,除了給使用者本人帶來諸多不便,在系統安全上也存在很大的安全隱患。

就像很多人提醒的那樣,每一個字串的誤辨識,都是駭客可以利用的SQL注入攻擊機會。

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則