处于风口浪尖的红芯浏览器,其中的两款插件代码被公开以后,在程序员群体中打开了“群嘲”模式。
8月16日,自称“打破美国垄断,中国首个自主创新智能浏览器内核”的红芯浏览器,被网友发现“只是谷歌浏览器换了一层皮”——红芯浏览器安装包解压后发现,最终可以得到一个版本号为49.1.2623.213的Chrome文件。
目前,在红芯浏览器的安装包中有两个浏览器插件可以看到源代码,不少互联网工程师通过阅读代码发现,红芯的代码存在过度注释、代码冗余、语言陈旧等问题,甚至还有工程师测试后发现,它在插件的保密性上存在虚假宣传。
一位从事数据相关业务的工程师对澎湃新闻记者表示,红芯浏览器插件的源代码中存在大量的注释,显得注释过度。一般熟练的程序员日常写代码时不会所有内容都进行注释,简单的接口不用注释,也不用重复注释。
“注释的主要功能是提醒程序员某一段代码的用途,但每一句都加注释,太浪费工作效率,而且显得十分业余。”一位从事汽车软件开发的工程师这样说道。
另一位来自外资科技公司的程序员则向记者评价称:“中文注释说明水平可能不高,说明懂英文的人不多。”
而且,一位程序员认为,产品上线后大量注释都没有处理,没办法期待它有什么安全性可言的,“注释就是解释程序运行的文档,产品上线之后一般是要去掉的,防止被其他人摸清运行机制后进行攻击,这是最基本的安全意识。”
红芯浏览器插件代码几乎每一行都有中文注释。
而另一个比较显著的问题是,红芯的代码被指层层复制,存在大量冗余的内容。
“以密码管家这款插件为例,它的源代码中,一个仅350行的文件就有100行是重复的。说明写该插件代码的程序员不懂封装,即把代码中相同的部分抽象成一个单独的函数。”一位程序员指出。
“有些重复的代码可以写成一个函数。业务逻辑通过参数传进去。”一位工程师向澎湃新闻记者打比方称,“比如要得到某人老公的姓名,用函数实现的话,就是输入‘孙俪’得到‘邓超’,而不用写孙俪老公邓超、杨颖老公黄晓明等好多个。”
另外,还有程序员向记者指出,上述插件代码中,大量使用常量字符串,这使得之后可能的重构变得非常困难,以及不利于国际化等进一步开发。此外还充斥着大量面条式代码,导致开发人员阅读和后续开发困难。(编注:面条式代码,指源代码的控制流程复杂,混乱难以理解。)
一位在出行互联网公司工作的工程师在看过红芯插件的代码后表示:“水平还凑合,就是写法有些陈旧,差不多是四五年前的写法吧。”这一说法得到另一位工程师的认同:“代码中大量使用的jQuery是12年前发布的,已经过时,使得代码冗长不易读懂”。
一位资深前端工程师则指出,现在市面上成熟的前端团队很少使用JavaScript语言,为了工程化都是用Typescript进行工程构建的。“红芯的代码不仅是JavaScript,还是第六版之前的风格,没有经过代码构建和混淆以及去注释、压缩等过程。这是严重缺乏专业性的表现,一般这种代码只会在外包代码中出现。”
除了代码的被指显得不够专业,更值得注意的是,红芯浏览器插件在数据安全方面也值得商榷。
一位程序员试验发现,红芯的密码管家插件中所存储的密码仅存储于本地并且没有加密,即用户可知道使用同一台计算机的其他人的密码。
该程序员向澎湃新闻记者指出,通过阅读密码管家的代码,发现存在密码管家里的密码都是明文存在一个叫做“local storage”的地方,local storage在chromium里是存在一个本地的sqlite数据库文件里,并且这个数据库文件没有加密。这个文件被存在每个用户的AppData文件夹里。
插件将明文密码存在local storage中,存在本地的sqlite数据库的文件没有被加密。
红芯浏览器的官网产品介绍称,其数据缓存及存储层使用了数据加密箱。然而该程序员发现,经他试验,红芯浏览器的数据缓存并未如其宣称的那样进行加密。
程序员测试发现,红芯浏览器插件没有实现产品宣传中的数据加密沙箱功能。
8月16日晚,红芯时代(北京)科技有限公司发布声明称:红芯浏览器内核是基于通用的浏览器内核架构(即Chromium开源项目,但不是Chrome浏览器)的基础上进行技术创新的;区别于传统的浏览器,红芯浏览器是专门针对企业办公场景设计的国际上浏览器内核技术是不断迭代更新的,红芯浏览器内核 Redcore是基于 Chromium/Bnk。
对此,不少程序员纷纷吐槽,红芯浏览器套用的谷歌49.1.2623.213版本的Chrome文件,是比较陈旧的版本,因为这是谷歌浏览器Chrome最后一个支持Windows XP系统的版本,而红芯浏览器是支持XP系统的。
“这说明他们连最起码的代码修改都不会,360浏览器也是基于Chrome内核,用的是最新的69版本,它们就做了XP的适配。”一位程序员告诉记者。
红芯时代在声明中称,Redcore内核的技术创新体现在以下三方面:第一,红芯隐盾该功能主要是让企业的应用系统隐身,只对特定身份和设备可见,从而有效避免外部可能的攻击。第二,红芯云适配,主要是将企业PC端系统适配至移动端,从而帮助企业快速实现移动办公;第三,安全可控浏览器,通过私有DNS、加密缓存国密算法支持等功能,帮助企业迸行数据保护和隐私保护这些功能都源自于企业客户的需求。
一位资深的前端工程师向澎湃新闻记者直言,红芯时代所称的三点创新“完全是在混淆视听”。
“因为他们是通过浏览器插件的形式实现的,他们将话题锁定在浏览器上,让公众以为浏览器是他们的创新。而打开Chrome插件市场,类似功能的插件可以说是非常多的。” 该工程师解释道,“至于价值,好的浏览器插件是有可能有千万级估值的,但是现在Chrome插件市场整体不景气,高质量的Chrome插件应该有百万左右的价值。但我不认为红芯的插件是高质量插件。”
8月15日,红芯宣布完成2.5亿元C轮系列战略融资。据称,这轮融资投资方主要来源于红芯的客户——大型上市公司及政府客户。同时,晨兴资本、达晨创投、IDG资本继续跟进投资。