聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

節日彩蛋往往會給人帶來驚喜,但是如果這個彩蛋出現在不合時宜的地方,驚喜就會變成驚悚。在昨天喜慶的聖誕節氛圍之下,技術圈卻因為一個「聖誕節彩蛋」炸開了鍋。

不少前端開發在聖誕節早上就被一連串的電話轟炸:「為什麼網站按鈕像被狗啃了一樣?」

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

圖片來自新浪微博@程序員那些事

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

很快,出現這種狀況的網站的開發者很快定位到UI控件上的「彩蛋」的來源:Ant Design。

Ant Design 是來自阿里螞蟻金服的開源設計平臺,這套橫跨設計和開發的用戶體驗解決方案是開源的,團隊背後阿里巴巴的背景則讓這個平臺顯得足夠可靠。

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

和很多開源平臺、開源軟件一樣,Ant Design 中有著完整的開源協議和豐富的文檔,前端開發者和網頁設計師可以清晰地知道每個版本的變化,豐富的功能和完善的庫讓 Ant Design 受眾廣泛,不止國內,世界範圍內很多開發者、企業和團隊都基於 Ant Design 來設計和開發自家的網站以及其他的大型項目。

而問題就出在這個地方。

迅速發酵的「彩蛋」

昨天早上,碰到這一問題的開發者很快就在 Ant Design 於 Github 的討論區中發帖提出質問:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

遭遇相同問題的開發者很快聚集在 Github 的討論區中發言。有開發者在帖子中上傳了Ant Design 的「彩彈」對於代碼的各種影響,其他開發者也在回覆中協助提供解決方案:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

還有眼尖的開發者還發現,彩蛋中的 Merry Christmas 拼錯了:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

這個狀況可以說是歡脫而又尷尬了。

可是並不是每個受到「彩蛋」影響的開發者都可以如此輕鬆,很快災難性的後果就出現了:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

圖片來自知乎,侵刪

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

有人因為這個事情被扣獎金,但是更慘的還在後面:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

如果上面這個案例是真的,那麼應該是是最慘的一位了。

實際的項目受到 Ant Design 平臺的影響,而不少開發者甚至因為這個原因損失獎金甚至丟掉工作,影響是切實存在的。將 Ant Design 的框架應用在自家的產品上,問題尚且具備在內部處理的可能性,可是很多針對B端的產品也應用這一框架,面對「彩蛋」的影響,直接的經濟損失和問責就難以避免了:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

對於這一事件,知乎網友倒是有個非常貼切的描述:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

「UI攻擊」的始末

Ant Design 本身並不只是是一個單純的代碼合集,它涵蓋了一整套完整的設計語言以及相應的代碼組件,已經廣泛地應用在不同的APP、網頁當中,其中相當一部分是嚴肅的商業項目,甚至是政府項目。和 YUI、jQuery 類似,它是由企業和社區所貢獻出來的開源的、公用的代碼和素材庫。

實際上早在9月份的時候,Ant Design 項目的主力開發者afc163,就在代碼中加入了「聖誕彩蛋」的代碼。並且,這一更新並沒有在文檔中予以說明。

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

同時,作為代碼的主要維護者,afc163 至少在當時認為這一代碼需要「體現出來」。或許是因為在文檔中寫下來就不符合「彩蛋」的精神了?

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

有開發者在昨天的討論中提到,他們有人曾經發現過這一代碼的存在,並且通過刪除和修改規避了昨天的這一波「UI攻擊」。也有人聲稱曾經試圖向 Github 提交過這一問題,不過在聖誕節到來之前被刪除了。

對於這一「聖誕彩蛋」,afc163 在昨天也表示「做好了被罵的準備了」:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

但是實際的影響已經造成,之後 afc163 也在 Github 上發出了修復這一問題的解決方案:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

對於這一事件,在知乎上的討論也非常的激烈,這也使得Ant Design 在自己的知乎專欄中貼出了相應的聲明:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

相關負責人也在事件相關的知乎問題中作出了回應:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

修整完代碼,這一波被稱為「首例UI攻擊」的 Ant Design 聖誕彩蛋事件基本上算是告一段落了。但是,討論和後續的迴響並未停止。

不一樣的聲音

正如同開發者 yujianxia所說,事情過後,幾家歡喜幾家愁。

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

和全世界致力於分享的開發者一樣,阿里的開發者們使用工作之餘的時間所創造的 Ant Design 贏得的口碑,在這次事件之後,同樣受到了不小的負面影響。

不過也有很多開發者在討論中發出了不同的聲音。調侃是免不了的:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

可能是出於對Ant Design 的「娛樂精神」的認可,還有開發者表示對其好感提升了:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

不過這個因此升職加薪算是什麼操作?!

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

然而,最引人深思的事情,則是在開源項目和開源協議上,Ant Design 真的錯了嗎?這麼沉重的代價到底要誰來承擔?到底誰來負責?

關於彩蛋和開源

對於「彩蛋」本身的玩法,很多用戶都舉了知乎的「彩蛋」設計作為範例:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

「彩蛋」應該是靜默的,應該是需要被人被動去發掘的,而非直接跳出來的。對此,知乎網友 Winter 有一個很形象的表述:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

在網絡激烈的討論中,最讓人注意的事情,其實是作為開源項目的 Ant Design ,所有的操作都是遵循開源社區的開源協議的:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

從道理上來說,使用這些開源免費的素材,使用者本身需要承擔這些開源項目本身所帶來的後果:

聖誕節當天瘋傳的「首例UI攻擊事件」是怎麼回事?

雖然法律責任是沒有的,但是阿里的 Ant Design 團隊在開源領域好不容易積攢下來的信任,經此次事件之後,恐怕會大大受損。

在最近幾年的熱門事件當中,這件事情的特徵非常符合一種名為「供應鏈攻擊」的說法,雖然 Ant Design的本意並非如此。這種攻擊來自於你所信任的軟件和素材本身,幾乎不可被察覺。之前的 XcodeGhost 攻擊事件,和之後鬧得沸沸揚揚的「易語言」事件均是「供應鏈攻擊」。

如今阿里的Ant Design 團隊已經加入更加完善嚴格的代碼審核,類似的情況也許不會輕易發生,但是對於廣大開源免費素材的使用者而言,又何嘗不是一個警鐘呢?

對於開源和共享,絕大多數的開發者和設計師都是抱有善意的,在這次事情之後,我們到底有如何面對開源的另外一面呢?


分享到:


相關文章: