歡迎光臨
每天分享高質量文章

程式員群嘲紅芯瀏覽器:註釋過度很業餘,創新混淆視聽

(點擊上方公眾號,可快速關註)

轉自:澎湃新聞

 

 

處於風口浪尖的紅芯瀏覽器,其中的兩款插件代碼被公開以後,在程式員群體中打開了“群嘲”樣式。8 月 16 日,自稱“打破美國壟斷,中國首個自主創新智慧瀏覽器內核”的紅芯瀏覽器,被網友發現“只是谷歌瀏覽器換了一層皮”——紅芯瀏覽器安裝包解壓後發現,最終可以得到一個版本號為 49.1.2623.213 的 Chrome 檔案。

  

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

  

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

  

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

  

另一位來自外資科技公司的程式員則向記者評價稱:“中文註釋說明水平可能不高,說明懂英文的人不多。”

  

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


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


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

  

“以密碼管家這款插件為例,它的原始碼中,一個僅 350 行的檔案就有 100 行是重覆的。說明寫該插件代碼的程式員不懂封裝,即把代碼中相同的部分抽象成一個單獨的函式。”一位程式員指出。

  

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

  

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

  

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

  

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

  

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

  

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

  

紅芯科技創始人:承認宣傳有誤,加密傳輸等方面超越谷歌

  

谷歌瀏覽器的開源專案 Chromium 開放原始碼,允許全球的開發者進行二次研發。比如獵豹、360 瀏覽器都使用了這一代碼,作為免費開放的專案,谷歌唯一的要求就是,無論拿代碼做免費還是收費的瀏覽器都可以,但必須遵循開源協議,在產品中標明使用了 Chromium 原始碼。可紅芯瀏覽器,一面宣稱自主創新,比肩四大瀏覽器內核,卻沒有寫明使用了 Chromium。對於網友的質疑,陳本峰承認,的確有些問題:我們如果它協議裡面有,我們確實應該對他進行感謝,我覺得如果說這點我們做得不對,我們就承認我們的錯誤。



紅芯聲稱在加密資料傳輸等方面,強於谷歌瀏覽器紅芯聲稱在加密資料傳輸等方面,強於谷歌瀏覽器。

  

雖然承認宣傳有誤,但紅芯 CEO 陳本峰還是強調,紅芯還是做了研發的,紅芯瀏覽器在加密資料傳輸等方面,強於谷歌瀏覽器:“我們在瀏覽器內核上面做了實實在在的創新,跟漢芯一個很大的不同,其實我們做一家技術的公司,我們要真的要把 Chrome 這個東西,把檔案名簽名給改了,對我們來說那都是很容易的事,為什麼我們沒乾?我們給客戶提供的不是說因為我叫紅芯你買我,而是因為我們剛纔提供的這些功能”。



【關於投稿】


如果大家有原創好文投稿,請直接給公號發送留言。


① 留言格式:
【投稿】+《 文章標題》+ 文章鏈接

② 示例:
【投稿】
《不要自稱是程式員,我十多年的 IT 職場總結》:

http://blog.jobbole.com/94148/


③ 最後請附上您的個人簡介哈~

覺得本文有幫助?請分享給更多人

關註「演算法愛好者」,修煉編程內功

赞(0)

分享創造快樂