美國一位宅宅工程師將車牌申請為「NULL」,結果全國辨識不清的違規罰單都找到了一個家

與我國主要以字母加上數字為規則的車牌設計不同,美國的車牌不但是色彩繽紛,而且可以有不同的設計,要用純字母的車牌也可以。而一位來自洛杉磯的工程師Droogie,就很工程師性格地註冊了一個「NULL」的車牌號碼,這在工程師來說應該是一個很酷的車牌,不過,這個車牌卻帶給他相當哭笑不得的後果。

「NULL」這個字串在程式設計中主要代表一個「空值」,意思就是沒有這個內容。比如說當你在撰寫程式的時候,想要在一篇文章中尋找一個叫做「T客邦」的關鍵字,但是這篇文章中從頭到尾都沒有出現這三個字,那麼這時程式就會傳回一個「NULL」,表示沒有找到這個關鍵字,答案為「空」。

Droogie身為一個工程師,將自己的車牌註冊這個號碼,第一是覺得身為一個工程師開一台「NULL」的車子很酷,感覺好像自己在實體世界隱形起來。其次,他也想說不定會發現一個系統漏洞:就算他的車子超速違規了,系統也會因為車牌為「NULL」,所以他也收不到罰單。

美國一位宅宅工程師將車牌申請為「NULL」,結果全國辨識不清的違規罰單全找到了一個家

結果,還真的給他發現了系統漏洞......只是結果跟他想的不大一樣。甚至可以說,結果剛好相反。

Droogie是在出席拉斯維加斯的DEF CON世界駭客年會時,向大家報告這件事的。他表示,他申請完車牌之後,幾乎每天都會收到一張以上的罰單。到他出席駭客年會的這一天為止,累計已經收到超過1.2049萬美元的罰單。

而且,每一張罰單上所罰的車牌號碼,正是「NULL」。

美國一位宅宅工程師將車牌申請為「NULL」,結果全國辨識不清的違規罰單全寄到他家來

原來,根據美國的交通系統,後台將所有識別不清車牌號碼的罰單,都會將車牌指派為「NULL」,意思就是空值。原理與前面所說找不到關鍵字的原理是一樣的,這是設計師的普遍思維。不過,過去「NULL」這個空值意思就是空值,但是現在「NULL」這幾個字串已經被Droogie註冊了,因此,這些無主的罰單現在通通找到了主人,全部寄來他的信箱。

其實在程式設計中,「空值」與字串「NULL」是不一樣的,原則上應該會有一些防護的機制,就可以避免這種情況發生,但實際上還是有些環節有出錯的可能。比方說,系統將辨識不清的罰單輸出成EXCEL表格,然後以「NULL」代表辨識不清的車牌。然後監理單位依照這個輸出報表去開罰單,卻沒有檢查這個欄位的型態,當成字串去處理。

Droogie表示,他向設計罰單的系統公司 Citation Processing Center 反映了這個問題,對方要求他把罰單寄回。但他怕寄出罰單後他連能證明不是他違規的證據都沒有。於是,他轉而向美國的監理單位求助,監理單位答應幫他去撤銷這些罰單。

問題是,撤銷他收到的罰單並沒有解決他的問題,因為新的罰單還是駱繹不絕的寄來。他只能持續在去找監理單位幫他銷單。

更不幸的是,他想要更改持車牌號碼,但是因為積欠罰款太多,無法去更換車牌資料。

Droogie的故事給我們一個啟示:有些時候,寫程式用到的名詞,還是讓他們保持在程式裡頭就好。別跑到實體世界出來害人(或是害自己)。

另外,有網友說這個事件與先前 找不到真實地址的IP全被放到他家!美國軍方不小心在南非建了一間「IP鬼屋」 的這個事件很像,的確是有點像。唯一的差別是先前IP映射位址這個案例中的受害者是住在那個地點沒得選,而這個案例則是受害者自找的。

 

 

想看小編精選的3C科技情報&實用評測文,快來加入《T客邦》LINE@

使用 Facebook 留言

發表回應

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