当前位置: 首页 > Web前端 > HTML

《前端早读Jun005》开源与安全:AntDesign圣诞“彩蛋”活动

时间:2023-04-02 14:25:10 HTML

2018年的圣诞节让被誉为IT娱乐圈的前端圈真的又热闹了起来。事件起因是蚂蚁金服开源项目AntDesign框架(react-ui)的开发者别出心裁地在按钮组件上埋下了一个圣诞节触发的“彩蛋”。AntDesign项目在9月10日的一次提交中添加了按钮的圣诞彩蛋样式(见下图)。也就是说,在本次commit之后下载或更新这个项目的用户,会自动将12月25日isChristmas上的按钮更改为圣诞节风格,如此突如其来的变化让不少开发者“摸不着头脑”。因为AntDesign项目本身已经拥有非常庞大的用户量,在GitHub上有超过37000个Star,在NPM上每周有超过30万的下载量。此代码将在12月25日为所有按钮添加雪花效果,并添加HoHoHo的默认浏览器工具提示!而随之而来的是一些开发者的愤怒和指责,一些开发者表达了对AntDesign的理解。AntDesign的开发者显然没有想到这个彩蛋会引起这么大的渲染浪潮,并以千万级的热点迅速冲向大众。几乎排在热榜第二位。![clipboard.pAntDesign的projectissue也瞬间被点燃。项目开发商也在第一时间做出解释,道歉回归理性。其实作为开发者,我们应该从心底感谢AntDesign的开发者。我们可以看到该项目在github上有大约38000颗星,这无疑是全球前端开发者对该项目的认可和肯定。正是因为该项目在前端圈子拥有大量用户,所以事件影响巨大。不过,让我担心的并不是这个彩蛋,结合不久前npm包event-stream被污染的事件(著名npm包event-stream的作者将其转给了恶意用户right9ctrl。这个包每一个用每月超过150万次下载,并被1,600个其他npm包所依赖。),真正让开发人员担心和思考的是什么?就是如何保证引用第三方模块的安全性。很多软件由于长期使用第三方库文件,导致安全问题不断。在程序开发设计阶段,开发者往往会忽视第三方库代码的漏洞审查,甚至有的仓库直接用手,从根本上缺乏安全审计。如果库文件存在漏洞,大量使用该库文件的软件程序将面临安全威胁。这种场景在现实世界中已经有了血淋淋的证明:比如OpenSSL中的Heartbleed,GNUBash中的Shellshock,Java中的Deserialization。这些都是实际应用中第三方资源库或应用框架漏洞的典型案例。作为最大的开源存储库,Github拥有4900万个公共和私人项目,拥有1800万用户。据其安全总监ShawnDavenport介绍,Github不对托管代码进行审查或警告,用户可以根据需要使用Gemnasium、Brakeman、CodeClimate等第三方工具进行动态或静态代码分析。Davenport表示,“很多托管项目都存在安全隐患,我们只能尽量保证整个存储库的安全,同时让用户了解他们需要什么样的代码审查工具。从项目的角度来看,安全并不是开发者的首要任务责任。”。Davenport估计Github上只有少数用户在使用代码安全审查工具。对于大多数开发者来说,阅读第三方库的代码更是难上加难,这意味着你要投入大量的精力,更何况对于一些开发者来说,他们还不具备codereview技术能力。所以,面对这样的情况,我们可以指望的是更多地依靠开源作者遵循一定的开源精神,至少应该避免像圣诞彩蛋这样的事件。开源的责任开源是为了更好地协作开发解决用户需求的软件。但是一个高度复杂的项目已经获得了很高的市场份额,开发人员很难迁移。为什么开源是一种责任?因为一个好的软件项目就是要服务好用户,选择开源模式本身就是选择了一种提供通用(高市场占有率)方案来解决复杂问题的方式。选择开源模式可以加快项目的推广速度,增加你的软件被更多人依赖的可能性。这就是为什么开源就是责任。当数以亿计的服务器都在运行Linux服务时,那些在MailingList中为一行代码而进行的长期争论是极其令人肃然起敬的。就像一些开发者在事件中评论的那样,我们知道并理解AntDesign的开发者是出于好意而种下彩蛋,但作为AntDesign的最终用户,是否打开彩蛋的决定权应该交给给用户。希望在这件事之后,AntDesign的开发者能够以更专业的角度和严谨的态度来评估他们的每一次改动对数万开发者的影响。最后感谢开源,感谢贡献!愿春节没有彩蛋。微信扫一扫关注早都君,每天早上为你推送前端知识,打发拥挤的地铁公交时间。