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