WP-Optimize 插件被指控欺騙 PageSpeed 和其他性能測試工具
已發表: 2022-08-30Gijo Varghese 是一位自稱為“網絡性能愛好者”的開發人員,他在推特上發布了一個截圖,說明 WP-Optimize 如何在用戶通過流行性能測試他們的網站時明確阻止加載選定的 JavaScript 文件,這讓全世界的 WordPress 用戶感到震驚。測試工具。
“加載站點時,僅當用戶代理/瀏覽器不是 Lighthouse/GTmetrix/Headless Chrome/Pingdom 時才加載 JavaScript 文件,”Varghese 說。 “沒有 JS = 高分。 但是對於真正的用戶來說,這些 JS 文件是被加載的!”
Varghese 證實他正在測試 WP-Optimize 的免費版本,該版本已在超過一百萬個 WordPress 網站上使用。 UpdraftPlus 在 2016 年收購了 WP-Optimize,並聲稱該工具“擁有保持網站快速和徹底優化所需的一切”。 商業版本也通過託管在 WordPress.org 上的免費插件進行推廣。
“告訴我,UpdraftPlus,當你使用這些欺騙性和欺詐性做法時,我應該如何繼續信任你的公司並提供我客戶的備份?” 一位客戶 Adam Lowe 在回應 Varghese 發現該插件未加載 JS 以獲取性能工具時表示。
“哇,我只能說太令人失望了,”WordPress 機構所有者和開發人員布賴恩傑克遜說。
這種類型的欺騙與某人報告的騙局非常相似,該人在 Upwork 上與一名績效自由職業者簽約,人為地操縱了 Google Pagespeed 結果。 參與 Twitter 討論的其他人將其與大眾汽車排放醜聞進行了比較,在該醜聞中,該汽車製造商被發現僅在實驗室測試期間激活其排放控制,以便在違規後滿足 EPA 的要求。 與在裝配式實驗室測試中的表現相比,道路上的車輛在駕駛時排放的氮氧化物高達 40 倍。
Varghese 和對話中的其他幾位參與者得出結論,這就是為什麼網站所有者應該關注真實世界用戶的體驗,而不是性能工具測試分數。
即使專注於真實的用戶體驗,網站所有者也經常依賴測試來診斷問題並了解如何改進網站的性能。 他們不希望插件會從性能工具中隱藏 JS 文件。 欺騙測試已經侵蝕了 WP-Optimize 的可信度。
“哇。 如果屬實,這既是短視的,也是不可原諒的,”UpdraftPlus 的客戶 Johnathon William 說。 “這讓我想知道我是否可以信任他們的另一個產品 UpdraftPlus,我用它來備份多個客戶站點。”
我聯繫了 UpdraftPlus,首席開發人員 David Anderson 說公司不知道代碼存在問題,但與一些背景故事有關。 UpdraftPlus 與 Fast Velocity Minify 插件的作者就聯合力量的可能性進行了簡短的討論,他將在 WP-Optimize 中維護縮小模塊並獲得更多用戶。 最終他們無法達成協議,但在那段時間 WP-Optimize 的開發人員在 GPL 下分叉和改編了 Fast Velocity Minify。 從事該改編工作的開發人員不再在公司工作。
“在 2.5 年前(2020 年 1 月)對我們自己的源存儲庫的提交中,該提交被標記為‘解決’添加來自‘Fast Velocity Minify’ - 第 6 部分的 CSS 和 JS 縮小 GPL 代碼,”安德森說。 “一系列初始代碼合併的一部分,經過重構以更簡潔並使用我們的編碼風格偏好(但不改變任何功能)。 因此,合併這些行的明顯目的是在不進行任何更改的情況下引入重構的代碼。
“根據提交歷史記錄(即'git blame'函數),此後沒有對該代碼進行任何更改,即它是導入時的。 (WP Optimize 的歷史也在 WordPress SVN 中公開)。”
在對代碼進行粗略檢查後,安德森得出結論,他的團隊可能需要重新檢查它,因為他們不知道兩年前添加了什麼。
“當我嘗試通過插件中的代碼跟踪該功能時,表面上的意圖似乎是,如果網站訪問者是“機器人”,那麼對機器人毫無意義的代碼將不會執行, “ 他說。
“但是話雖如此,1)機器人名稱看起來被嚴重混淆/編輯,這很奇怪(為什麼?),以及 2)還有很多更明顯的機器人沒有在此處列出,例如 Googlebot 本身。 如果今天將該功能提交給我進行審查,我當然會質疑為什麼會這樣。 我無法在 32 個月前回想自己,但是,我記得它是一長串大補丁,因此沒有逐行仔細分析。 我們知道我們已經將 FVM 確定為一個很好的插件,我們的主要重點是使其適應我們的結構和風格,而這些正是我個人作為最終審閱者所關注的東西。”
總而言之,UpdraftPlus 的開發團隊直到週末發布 Twitter 帖子才知道此代碼。
“我當然很高興將它帶到我們的意圖中,”安德森說。 “相關代碼在其原始源代碼中對相關片段進行了註釋,它旨在防止對機器人的不必要請求,但在比當時得到的那條線更仔細的檢查後,這是我們想要查看的內容,因為它確實看起來有問題/奇怪,我們將把它分配給我們在 JavaScript 優化方面的專家團隊成員來做到這一點。”
Anderson 還表示,如果 JavaScript 優化專家無法找到代碼的任何合法用途,“它肯定會被刪除”,並清楚明確地披露其背後的原因。
與此同時,UpdraftPlus 在插件的支持論壇上發布了通知,通知用戶該代碼目前正在調查中。
“要明確並讓用戶放心:有問題的代碼不是危險的、病毒、感染、對黑客有用或任何類似的東西,”安德森說。 “指控是它存在的唯一目的是有效地在速度測試中作弊。 如果是這樣的代碼,則不屬於 WP Optimize,我們將在新版本中將其刪除。 我們產品的完整性和客戶的信任對我們來說至關重要(並且故意將一些東西放入開源代碼中,坦率地說,這是一種愚蠢的做法)。”