摘要:事件起因是螞蟻金服的開源項目框架的開發者別出心裁地在組件上埋下了一個在圣誕節當天觸發的彩蛋。因此,面對這樣的局面,我們能指望的,更多是靠開源作者們遵循某種開源精神,至少像圣誕彩蛋事件,是應該可以避免的。
2018年的圣誕節,讓素有IT娛樂圈稱謂的前端圈著實又熱鬧了一把。事件起因是螞蟻金服的開源項目Ant Design 框架(react-ui)的開發者別出心裁地在button組件上埋下了一個在圣誕節當天觸發的“彩蛋”。
Ant Design 項目在 9 月 10 日的一個 commit中增加了 button的圣誕彩蛋樣式(見下圖)
也就是說在這次 commit 后下載或更新此項目的用戶都會在 isChristmas12 月 25 日的 button會自動變成 christmas樣式
而這樣突如其來的變化,讓諸多開發者“一臉懵逼”。因為 Ant Design 項目本身已經有非常大量的用戶,在 GitHub上有超過 3.7 萬的 Star,而 NPM上也展示每周有超過 30 萬次下載。
該代碼會在 12 月 25 日當天給所有按鈕添加積雪效果,并增加 Ho Ho Ho! 的瀏覽器默認提示信息。
而隨之而來的,是部分開發者的憤怒和指責
也有部分開發者表示理解
Ant Design的開發者顯然沒想到這個彩蛋會引起如此的渲染大波,并且以千萬級別的熱點迅速沖上了知乎熱榜第二名。
![clipboard.p
Ant Design 的項目issue也瞬間被點燃
項目的開發者也第一時間作了說明并且進行道歉
回歸理性,事實上,作為開發者,我們是打心里應該感謝Ant Design 的開發者們,我們可以在github上看到該項目高達38000左右的star,這無疑是全球前端開發者對該項目的認可和肯定。正是因為該項目在前端圈中有大量的使用者,才導致事件影響巨大。
然而讓筆者擔憂的并非是這個彩蛋,結合還沒過去多久的被污染的 npm 包event-stream事件(一個著名的 npm 包 event-stream 的作者,將其轉讓給了一個惡意用戶 right9ctrl。這個包每個月有超過 150萬 次下載,同時其被 1,600 個其它的 npm 包依賴。),真正應該引起開發者擔憂和思考的是什么?就是如何保障引用第三方模塊的安全。
很多軟件由于長期使用第三方庫文件,導致了持續的安全問題。而在程序開發設計階段,開發者又經常忽略了第三方庫代碼的漏洞審查,甚至有些資源庫(repositories)直接被信手拈來使用,從根本上就缺乏了安全審計。
如果某個庫文件存在漏洞,那么,大量使用了該庫文件的軟件程序都將面臨安全威脅。
這種場景,在現實世界中已經有了血淋淋的證明:如OpenSSL中出現的心臟滴血漏洞(Heartbleed)、GNU Bash出現的破殼漏洞(Shellshock)和Java中的反序列化漏洞(Deserialization),這些都是實際應用程序中,存在第三方資源庫或應用框架漏洞的典型案例。
Github作為最大的開源資源庫,它托管著4900萬個公共和私人項目,擁有1800萬用戶。
據其安全負責人Shawn Davenport介紹,Github不對托管代碼進行審查或警告,用戶可以根據需求使用第三方工具,如Gemnasium、Brakeman和Code Climate等,進行代碼動態或靜態分析。
Davenport說,“很多托管項目都存在安全隱患,我們只能盡量保證整個資源庫的安全,同時讓用戶明白他們需要什么樣的代碼審查工具。從項目角度來說,安全并不是開發者的首要責任”。
據Davenport估計,Github上只有少數用戶在使用代碼安全審查工具。
而對于絕大部分開發者而言,閱讀第三方庫的代碼更是很難完成的一件事情,這意味著你要投入巨大的精力,何況對于部分開發者而言,并不具備代碼審查技術能力。
因此,面對這樣的局面,我們能指望的,更多是靠開源作者們遵循某種開源精神,至少像圣誕彩蛋事件,是應該可以避免的。
開源的責任
開源是為了更好地協作開發出解決用戶需求的軟件
一但一個高復雜度的項目獲得了高市占率,開發者則難以遷移
為什么開源即責任?因為一個好的軟件項目是為了服務好用戶,選擇開源模式,本身就是選擇了一個為解決復雜問題提供通用(高市占率)解決方案的途徑。選擇開源模式,即提高了普及項目的速度,也就提高了你的軟件被更多人依賴的可能。這也就是為什么,開源即責任。當數億臺服務器運行著 Linux 服務的時候,那些躺在 Mailing List 里的一次次為哪怕一行代碼的長篇爭論,都讓人無比敬畏。
就像部分開發者對事件的評論一樣,我們知道也并理解Ant Design 開發者是出于一種好意而埋下的彩蛋,但是作為Ant Design 的最終使用者,這個彩蛋的開啟與否的決定權應當交到使用者手里。希望經過這次事件,Ant Design的開發者能從更專業的角度和嚴謹的態度去評估他們每一個改動對數以萬計的開發者的影響。
最后
感謝開源,感謝貢獻!愿春節沒有彩蛋。
微信掃一掃關注早讀君,每天早晨為你推送前端知識,度過擠地鐵坐公交的時光。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100532.html
摘要:事件起因是螞蟻金服的開源項目框架的開發者別出心裁地在組件上埋下了一個在圣誕節當天觸發的彩蛋。因此,面對這樣的局面,我們能指望的,更多是靠開源作者們遵循某種開源精神,至少像圣誕彩蛋事件,是應該可以避免的。 2018年的圣誕節,讓素有IT娛樂圈稱謂的前端圈著實又熱鬧了一把。事件起因是螞蟻金服的開源項目Ant Design 框架(react-ui)的開發者別出心裁地在button組件上埋下了...
摘要:在開源軟件中,加彩蛋是一種樂趣,并不為奇,同為知名組件庫的項目,也經常在文檔中埋藏很多彩蛋,不過僅僅是在文檔中,組件庫中是沒有的。本來就來介紹下我們在開源項目中是怎樣埋彩蛋的。 今天的 AntDesign 圣誕節彩蛋事件確實炸開了鍋,加彩蛋的初衷是好的,只是這次玩過了火。 在開源軟件中,加彩蛋是一種樂趣,并不為奇,同為知名 UI 組件庫的 iView 項目,也經常在 文檔 中埋藏很多彩...
摘要:更安全地藏私房錢實際上,每天記錄下當前的數據是不靈活的,而函數柯里化則有效地解決了這個問題。而且不定時舉辦活動贈送書籍哦 什么是函數柯里化 在計算機科學中,柯里化(Currying)是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,并且返回接受余下的參數且返回結果的新函數的技術。這個技術由 Christopher Strachey 以邏輯學家 Haskell ...
摘要:更安全地藏私房錢實際上,每天記錄下當前的數據是不靈活的,而函數柯里化則有效地解決了這個問題。而且不定時舉辦活動贈送書籍哦 什么是函數柯里化 在計算機科學中,柯里化(Currying)是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,并且返回接受余下的參數且返回結果的新函數的技術。這個技術由 Christopher Strachey 以邏輯學家 Haskell ...
摘要:今日勵志語錄有志者自有千計萬計,無志者只感千難萬難。三動畫技術越來越不陌生,使用門檻也漸漸降低,而且動畫還可以使用控制。掃一掃查看效果打開微掃一掃關注早讀君,每天早晨為你推送前端知識,度過擠地鐵坐公交的時光 今日勵志語錄有志者自有千計萬計,無志者只感千難萬難。 文章原出處:騰訊ISUX 開始閱讀之前你可以先掃一掃體驗demoshowImg(https://segmentfault.co...
閱讀 2185·2021-09-02 15:11
閱讀 1507·2019-08-30 15:43
閱讀 2073·2019-08-29 13:48
閱讀 2790·2019-08-26 13:55
閱讀 2100·2019-08-23 15:09
閱讀 2896·2019-08-23 14:40
閱讀 3421·2019-08-23 14:23
閱讀 2632·2019-08-23 14:20