圣诞节当天疯传的「首例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 攻击事件,和之后闹得沸沸扬扬的「易语言」事件均是「供应链攻击」。

完整的 XcodeGhost 攻击事件可以戳这里查看

如今阿里的Ant Design 团队已经加入更加完善严格的代码审核,类似的情况也许不会轻易发生,但是对于广大开源免费素材的使用者而言,又何尝不是一个警钟呢?

对于开源和共享,绝大多数的开发者和设计师都是抱有善意的,在这次事情之后,我们到底有如何面对开源的另外一面呢?

收藏 3
点赞 5

复制本文链接 文章为作者独立观点不代表优设网立场,未经允许不得转载。