icloud and coding

【我們為什麼挑選這篇文章】現今企業資安、防毒軟體甚至加密服務隨著科技日新月異的進步,造就不少職業駭客專門在挑戰、破解各種難度的防護與技術。

但你可曾有聽過,有人光靠自己的「名字」,就顛覆了企業整座人事系統?近期在蘋果 iCloud 系統上有趣的案例是,某個美國知名演員就因特殊的「名字」,被蘋果 iCloud 封殺了足足長達半年的時間。深入研究後發現,原來她的名字裡面居然有個「true」,然而這個關鍵字帶給蘋果 iCloud 系統很大的麻煩,就有資深的工程師跳出來跟這位演員說:請改名字吧!(責任編輯:孫敬)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位

一個「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 的值識別為字符串的機制。

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

用名字摧毀學校有可能嗎?

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

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

這下你們應該明白對資料做過濾篩選有多重要吧??

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

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

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

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

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

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

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

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

好在,我們中國用戶不用擔心這個問題~ ( TO 編按:此文轉載自中國媒體量子位)

參考鏈接:

更多工程師專屬趣事

你玩「小朋友下樓梯」最高紀錄是幾層?當年遊戲開發者現已是超強工程師!

迷因爺爺本人現身!「在變成迷因之前,我是個電機工程師」,卻意外紅遍全球

15 個工程師才懂的行內笑話!沒聽過別說你是工程師