新聞 > 大陸 > 正文

程式設計師群嘲紅芯瀏覽器:代碼注釋過度 修改都不會

處於風口浪尖的紅芯瀏覽器,其中的兩款插件代碼被公開以後,在程式設計師群體中打開了「群嘲」模式。

8月16日,自稱「打破美國壟斷,中國首個自主創新智能瀏覽器內核」的紅芯瀏覽器,被網友發現「只是谷歌瀏覽器換了一層皮」——紅芯瀏覽器安裝包解壓後發現,最終可以得到一個版本號為49.1.2623.213的Chrome文件。

目前,在紅芯瀏覽器的安裝包中有兩個瀏覽器插件可以看到原始碼,不少網際網路工程師通過閱讀代碼發現,紅芯的代碼存在過度注釋、代碼冗餘、語言陳舊等問題,甚至還有工程師測試後發現,它在插件的保密性上存在虛假宣傳。

一位從事數據相關業務的工程師對澎湃新聞記者表示,紅芯瀏覽器插件的原始碼中存在大量的注釋,顯得注釋過度。一般熟練的程式設計師日常寫代碼時不會所有內容都進行注釋,簡單的接口不用注釋,也不用重複注釋。

「注釋的主要功能是提醒程式設計師某一段代碼的用途,但每一句都加注釋,太浪費工作效率,而且顯得十分業餘。」一位從事汽車軟體開發的工程師這樣說道。

另一位來自外資科技公司的程式設計師則向記者評價稱:「中文注釋說明水平可能不高,說明懂英文的人不多。」

而且,一位程式設計師認為,產品上線後大量注釋都沒有處理,沒辦法期待它有什麼安全性可言的,「注釋就是解釋程序運行的文檔,產品上線之後一般是要去掉的,防止被其他人摸清運行機制後進行攻擊,這是最基本的安全意識。」

紅芯瀏覽器插件代碼幾乎每一行都有中文注釋。

而另一個比較顯著的問題是,紅芯的代碼被指層層複製,存在大量冗餘的內容。

「以密碼管家這款插件為例,它的原始碼中,一個僅350行的文件就有100行是重複的。說明寫該插件代碼的程式設計師不懂封裝,即把代碼中相同的部分抽象成一個單獨的函數。」一位程式設計師指出。

「有些重複的代碼可以寫成一個函數。業務邏輯通過參數傳進去。」一位工程師向澎湃新聞記者打比方稱,「比如要得到某人老公的姓名,用函數實現的話,就是輸入『孫儷』得到『鄧超』,而不用寫孫儷老公鄧超、楊穎老公黃曉明等好多個。」

另外,還有程式設計師向記者指出,上述插件代碼中,大量使用常量字符串,這使得之後可能的重構變得非常困難,以及不利於國際化等進一步開發。此外還充斥著大量麵條式代碼,導致開發人員閱讀和後續開發困難。(編註:麵條式代碼,指原始碼的控制流程複雜,混亂難以理解。)

一位在出行網際網路公司工作的工程師在看過紅芯插件的代碼後表示:「水平還湊合,就是寫法有些陳舊,差不多是四五年前的寫法吧。」這一說法得到另一位工程師的認同:「代碼中大量使用的jQuery是12年前發布的,已經過時,使得代碼冗長不易讀懂」。

一位資深前端工程師則指出,現在市面上成熟的前端團隊很少使用Javas***語言,為了工程化都是用Types***進行工程構建的。「紅芯的代碼不僅是Javas***,還是第六版之前的風格,沒有經過代碼構建和混淆以及去注釋、壓縮等過程。這是嚴重缺乏專業性的表現,一般這種代碼只會在外包代碼中出現。」

除了代碼的被指顯得不夠專業,更值得注意的是,紅芯瀏覽器插件在數據安全方面也值得商榷

一位程式設計師試驗發現,紅芯的密碼管家插件中所存儲的密碼僅存儲於本地並且沒有加密,即用戶可知道使用同一台計算機的其他人的密碼。

該程式設計師向澎湃新聞記者指出,通過閱讀密碼管家的代碼,發現存在密碼管家裡的密碼都是明文存在一個叫做「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資本繼續跟進投資。

責任編輯: 夏雨荷  來源:澎湃新聞 轉載請註明作者、出處並保持完整。

本文網址:https://tw.aboluowang.com/2018/0818/1159955.html

相關新聞