美國東部時間5月6日下午6:30左右,DoorDash、Spotify、TikTok和Venmo等大公司流行的iOS應用突然開始崩潰。罪魁禍首並沒有長期成為一個謎。
Twitter和GitHub上的開發者很快發現了問題的原因是Facebook的軟體開發工具包(SDK)存在問題,它與大小公司無數移動應用程式的操作交織在一起。這個問題雖然被Facebook很快解決了,但也說明了社交網路的範圍’甚至小問題如何在整個移動軟體行業產生重大連鎖反應。
“今天早些時候,Facebook的一個新版本包含了一個變化,導致一些使用者在使用Facebook iOS SDK的應用程式中崩潰,”Facebook發言人昨天在一份宣告中對Verge說。“我們很快發現了問題並解決了它。對於由此帶來的不便,我們深表歉意。“Facebook SDK是一個為開發者提供的軟體工具包,它有助於增強使用Facebook帳戶登入和向Facebook按鈕提供共享等功能。因此,這個問題並非iOS獨有;它可能發生在Android SDK上,在這種情況下,只會影響蘋果的平臺。
然而Facebook並沒有明確說明問題所在,也沒有說明SDK的新版本是如何引發崩潰的。也不清楚為什麼這麼多應用受到如此不利的影響,甚至當使用者沒有登入Facebook或者應用本身沒有充分利用SDK或者依賴Facebook的功能時。
據應用程式開發商guilhermerambo稱,問題在於Facebook營銷其開發工具集的方式。“Facebook真的推動開發者安裝他們的SDK,很可能是因為他們想要在這些應用程式的使用者身上收集非常豐富的資料。SDK為開發者和營銷團隊提供了便利,因為它還可以用來跟蹤透過Facebook執行的廣告的轉換。(蘭博的網站上也有他自己的分析。)
例如,他說,如果你想透過Facebook為你的移動應用程式做一個廣告活動,唯一能深入瞭解活動表現的方法就是安裝公司的SDK。他說:“另一個主要原因是我們在許多應用程式中看到的臭名昭著的‘使用Facebook登入’,完全不用SDK就可以實現,但由於使用SDK更方便,許多公司最終反而走這條路。”。
但是,如果SDK出現了問題,就像昨天的情況一樣,那麼它就有可能把一切都搞垮。Facebook在伺服器端對其SDK進行了修改,這意味著沒有開發人員可以決定他們的應用程式是與舊的、穩定的版本通訊,還是與新的壞版本通訊。而且,由於每次使用者開啟應用程式時,應用程式都會與SDK通訊,因此會產生一連串的錯誤,導致全面應用程式崩潰。
ZDNet的Catalin Cimpanu在GitHub和HackerNews上引用了對這種情況的技術分析,他寫道:“問題是SDK期望伺服器以某種格式回覆,而在週三,Facebook伺服器沒有提供這種格式。”。“如果沒有適當的響應,Facebook的SDK崩潰了,所有使用它的應用程式也都被關閉了。”同樣,一旦受到影響,在Facebook解決了問題之前,開發者幾乎無法恢復服務。
蘭博說,應該有辦法防止這種情況發生,包括開發人員決定在不使用Facebook的情況下實現與Facebook的登入’s SDK。但其他系統級保護則是蘋果在授予第三方SDK許可權方面必須做出的決定。“現在的工作方式是,如果你安裝了一個應用程式,並且該應用程式包含第三方程式碼(如Facebook SDK),那麼該第三方程式碼的許可權和訪問級別與應用程式本身相同,” 他說。
“如果您授予應用訪問您的位置、聯絡人或日曆的許可權,它嵌入的第三方程式碼也可以獲取該資訊。解決這個問題的唯一方法是實現某種形式的沙盒模型,將第三方SDK與應用程式自己的程式碼分離開來,”他補充道。“這是一個很大的挑戰,但我希望蘋果的工程師們正在進行類似的工作。”
蘋果沒有迴應置評請求。
也就是說,開發商對這種情況似乎並不特別滿意。Rambo說:“據我所見,開發人員對此感到非常沮喪,特別是因為必須處理這類問題的工程師通常不是那些決定將SDK新增到他們開發的應用程式中的人。”。他補充說,與Facebook開發工具整合的決定通常是自上而下的,“很多時候,營銷或產品團隊只看到使用這些型別的sdk(更多資料,更多分析)的好處。”
但他說,科技公司的這類員工“看不到在處理應用程式中可能導致的問題上花費了大量的工程時間”。“SDK在主要應用程式中引起的崩潰並不少見,但我從未見過SDK同時影響這麼多應用程式的情況如此嚴重。我想說,這是一個史無前例的事件,它表明必須改變應用程式整合第三方程式碼的方式。”
...這種安全性使我們的個人資訊保密(當然也有例外,比如Facebook)。公開在社交媒體上揮霍和截獲並分析你的私人資料之間的區別是巨大的。 ...
...司的電子郵件帳戶。但是個人電子郵件帳戶呢?或者透過Facebook Messenger傳送的訊息?那完全是另一回事。 ...
... 為什麼這是最嚴重的程式設計錯誤之一:2000年的恐慌代價極高,高達3000億美元。另外,資源被重新定向以解決這個潛在的問題。 ...
這是一個普遍接受的事實:Facebook對我們的資訊瞭解得太多。數百萬人故意告訴扎克伯格和他的親信團隊他們喜歡什麼,他們恨什麼,喜歡誰,上哪所學校,還有很多。 ...
如果你擔心你的防毒軟體有多好,為什麼要等到為時已晚?有一些安全的方法,你可以測試你的防病毒軟體,以確保它的工作正常。 ...
...可能是黃背心運動(Yellow Vests movement),該運動被強制從Facebook撤到一個安全的Telegram應用程式上。 ...