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

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

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

轉自:澎湃新聞

 

 

處於風口浪尖的紅芯瀏覽器,其中的兩款外掛程式碼被公開以後,在程式員群體中開啟了“群嘲”樣式。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)

分享創造快樂