No.0260
Science Partner
Bring you to the side of science
![]()
導 讀
大家好,我是恒意。
上周網上的熱搜,想必大家應該都刷到了。有位網友發現,自己手機提示:美團刪除了照片和視頻。剛開始大家都覺得是個段子,或者截圖是P的。但接下來兩天,類似的反饋陸續在各個平臺冒出來。這時候大家才意識到這是真的。
輿論一下就炸了。照片這東西對每個人都很敏感,誰遇到這種事都會火大。美團這波挨罵不冤,畢竟在自家地盤上出了這么大紕漏,沒啥可說的。
但作為愛好科學的小伙伴,如果你只把這件事當成”一家大公司干了件蠢事”,跟著罵完就翻篇了,那可能錯過了一個更重要的信息。
這件事背后,其實藏著一個數字時代非常普遍、但大多數人沒意識到的規律。弄懂這個規律,比單純罵兩句更有用。
走,跟伙伴君來!
今日主筆 | 恒意
美團刪照片這件事的真問題是什么?
01. 先問一個最基本的問題
美團為什么要刪你的照片?
這個問題聽起來是廢話,但其實是整件事最重要的起點。刪用戶私人照片,對美團來說意味著什么?用戶憤怒、媒體曝光、品牌受損。一家每天靠幾千萬用戶信任來完成交易的平臺,這是瘋了嗎?
所以,在搞清楚“怎么發生的”之前,“為什么要這么做”這個問題的答案幾乎是確定的:非主觀意愿。
既然排除了“有人故意使壞”,那剩下的唯一解釋,就是一個在工程層面上沒兜住底的系統性技術問題了。也是恒意覺得整件事里最值得被每一位小伙伴看懂的部分。
02. 要看懂這個,咱們得先講一個互聯網圈出名的案子
2021年6月的某個普通工作日,全球互聯網集體宕機了將近一小時。《紐約時報》、BBC、Reddit、亞馬遜、Twitch,同時打不開。數億用戶刷新網頁,得到的只有報錯界面。
造成這一切的,是一家叫Fastly的CDN公司,全球頂級的基礎設施供應商,工程師水平放全世界都是第一梯隊。事故原因?一個在代碼里安靜潛伏了整整兩年的bug,被一個用戶的完全正常的操作,在某個沒有人預料到的條件組合下觸發了。
兩年里,無數次測試,無數次版本迭代,沒有任何一次把它翻出來。
工程世界里有一類bug,有個專門的名字叫Heisenbugs,得名于量子力學的海森堡測不準原理。它的特點是:你單獨觀測它,一切正常;但當某些特定變量同時出現,它就爆炸,而且幾乎不可能在爆炸之前被發現。這不是工程師偷懶,這是復雜系統的基本屬性,變量足夠多、模塊交互足夠復雜的時候,總會存在一些只有極端條件才能引爆的隱患。軟件工程發展幾十年了,這件事從沒被徹底解決過,包括在硅谷。
Fastly事后發了一份非常坦誠的技術復盤,整個行業看完之后的反應不是Fastly真壞,而是“這種事,可能發生在任何人身上”。
03. 美團這次,踩的是同一類坑
美團給的解釋是:第三方插件在部分安卓系統版本上運行沖突,緩存清理異常,誤刪了用戶文件。
聽起來像在甩鍋,但這個機制從技術上還確實是成立的,值得花一分鐘講清楚。
現代大型App,本質上是個“聯合國”。推送通知、數據分析、廣告投放、圖片處理,往往各用一個第三方SDK,來自不同公司,被集成在同一個App里,共享同一套系統權限,在你手機上同時運行。平時各跑各的,沒有問題。但在某個特定的安卓版本、某個特定的廠商定制層、某個特定的SDK版本組合下,兩段代碼同時去操作同一個資源。
于是,指令打架了。
緩存清理模塊本來應該清理App自己沙箱里的臨時文件。但在那個特定條件組合下,路徑判斷出了錯,走到了一個它永遠不該走到的地方。
這就是這次事故的物理過程。沒有人打開后臺盯著你的相冊挑著刪,一段走錯路的代碼,在它不該出現的地方,做了一件沒有人授權它做的事。
04. 責任是真實的,性質也必須要說清楚
2017年,亞馬遜AWS就出過一次影響深遠的宕機事故。一個工程師在執行例行運維時,操作自動化工具多輸了一個錯誤參數,觸發了遠超預期規模的服務器下線,Slack、蘋果App Store、數百家企業服務同時中斷。AWS的事后復盤直接承認:自動化工具對非預期輸入缺乏邊界防護,是系統設計上真實存在的疏漏。工程師沒有主觀惡意,但漏洞客觀存在,損失真實發生。
從現在掌握的信息看,美團這次在結構上高度相似。
OWASP的移動應用安全驗證標準MASVS,是目前全球移動安全領域被引用最廣泛的工程規范。它在本地存儲這一章里寫得很清楚App 對本地文件系統必須遵循最小權限原則,本地文件操作必須做嚴格路徑隔離,第三方SDK在沒有明確邊界約束的情況下,不得訪問用戶私有文件目錄。
對照這個標準,美團這次暴露的問題是清晰的:對引入的第三方SDK缺乏精細的權限邊界管理,極端系統環境組合下的測試覆蓋不足,本地文件操作缺少獨立的路徑合法性校驗。這不是一個bug能解釋的,是工程體系在這個具體環節上系統性的疏忽。
責任在,損失真實,用戶憤怒完全合理,大家罵也理所當然。但如果你硬要把它當成一家公司在后臺偷偷刪你照片,那就有點找錯靶子了。找錯靶子的結果就是:罵完之后,你以為自己安全了,其實真正坑你的那個東西,還在你手機里。
這才是罵聲蓋住的那個問題。
05. 真問題是,不可替代的東西別放一個籃里
這次事故里有一個細節值得認真想一想:很多受害者說,那些照片是他們唯一的副本。
沒有備份。
我們正生活在一個把越來越多不可替代的東西塞進手機的時代。孩子的成長記錄、父母留下的舊照片、多年前的旅行視頻,這些東西一旦丟失就是真正意義上的永久消失。但我們對它們的保護方式,大多數人還停在“放在手機里應該沒事吧”這個判斷上。
數字安全領域有一條被NIST寫進數據保護基礎建議里的原則,叫3-2-1備份法則:
三份數據副本,存在兩種不同介質上,其中一份在異地或云端。這不是什么高深技術,數據安全也被掛在嘴上多年,道理并不復雜,難的是大家總覺得“應該用不上吧”,結果哐當一下就趕上了。
Fastly的bug潛伏了兩年。AWS的工程師多刪了一個參數。美團的某個SDK在特定環境下走錯了路。這些故事的共同點,不是某家公司壞,而是,任何一個足夠復雜的數字系統,在足夠極端的條件組合下,都可能做出讓你意想不到的事。這不是世界末日,但這是事實。
面對這個事實,最理性的應對從來不只是罵哪一家公司。更重要的問題,是認真問:
手機里最重要的那些東西,現在在幾個地方存著?
如果答案是“一個”,那今天,就是你做備份的最好時機。
我是恒意,咱們下期見~
本文 僅作科普分享使用,歡迎小伙伴們點、收藏、關注,以備不時之需,當然更歡迎您把 介紹給周邊可能需要的更多伙伴們呀。
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.