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