WP-Optimize 否認作弊工具的指控

昨天,我們 發表 Gijo Varghese 對 WP-Optimize 的製造商 UpdraftPlus 的指控。 Varghese 是一家競爭公司 FlyingProxy 的創始人,並自稱是「性能愛好者」。 他指責該插件「欺騙了 Pagespeed 和其他工具」,在用戶通過流行的性能測試工具測試他們的網站時隱藏 JavaScript 文件以防止載入。 該代碼為測試工具使用了一組奇怪的混淆名稱,這引起了他的懷疑。

Varghese 在他的文章中沒有提到 鳴叫 這就是當 Minify > JS 下的插件設置之一設置為延遲 JavaScript 時發生的情況。 有兩個單選按鈕設置,但它們令人困惑。

第一個單選按鈕允許用戶推遲選定的 JavaScript 文件。 它說文件將被非同步載入(與延遲不同),然後它還說如果用戶想要從頁面速度測試中排除腳本,則應該選擇第一個單選按鈕。 目前尚不清楚如何為用戶或測試站點載入腳本。 排除與延遲不同,因此在這種情況下,設置 UI 有點誤導,應該更清楚。

wp-optimize-denies-allegations-of-cheat-performance-tools WP-Optimize 否認作弊性能工具的指控

第二個單選選項適用於只想推遲所有 JavaScript 的用戶。 如果選擇「使用 JavaScript 延遲(如果您需要支持 舊瀏覽器)」,它應該完全按照鏈接中的描述進行操作:

如果設置了 defer 屬性,則說明腳本與解析頁面並行下載,並在頁面解析完成後執行。

儘管 UI 說它正在推遲所有文件,但 WP-Optimize 永遠不會為性能測試站點載入 JavaScript。 在第二個選項中,測試站點的排除是在未經用戶許可的情況下發生的。 如果用戶想要這樣,他們會選擇前面的單選按鈕並明確確定要排除哪些腳本。

wp-optimize-denies-allegations-of-cheat-performance-tools-1 WP-Optimize 否認作弊性能工具的指控

Varghese 在他的原始報告中遺漏了一些重要的細節,但它是準確的,因為某些設置會誤導他們實際所做的事情。 他在後續視頻中演示了這一點,沒有手動輸入要排除的任何腳本,並且選中了第二個單選選項。

[embedded content]

「他們為用戶提供了一種作弊測試工具的選擇,」Varghese 說。 「此外,使用 Lighthouse 的『ighth』和 GTmetrix 的『tmetr』等名稱清楚地表明了他們正在嘗試做的事情。

「大多數用戶嘗試禁用和啟用不同的功能,以查看哪個功能提高了測試工具的速度/分數。」

Varghese 認為沒有必要對測試工具和人類做不同的事情,因為這可能會讓網站所有者感到困惑。 他的指控遺漏了重要的細節,並暗示所有這些都隱藏在代碼中。 它適用於其中一種設置,但不適用於另一種設置。 該界面暗示您必須手動輸入腳本才能從測試中排除,但這也是一種誤導。

WP-優化 對這些指控發表了公開回應 今天,但尚未透露他們完成的代碼調查的任何結果。 相反,該公司引用了由 Peter Wilkinson 創建的視頻 迪維引擎,誰聲稱用戶必須手動輸入腳本才能使測試站點排除它們。

引述威爾金森的結論是,「Gijo Varghese 使用欺騙手段來宣傳 Flying Pages 和 Flying Press」,以便在 Twitter 上將此問題引起公眾的關注。

「實際上(根據我的研究),當您安裝或縮小 JavaScript 時,WP-Optimize 不會「欺騙」Pagespeed 工具,」Wilkinson 說。

「要『欺騙』這些工具,您需要手動將要非同步載入的 JS 文件添加到明確標有「如果您有完全獨立的腳本或想從頁面速度測試中排除腳本( PageSpeed Insights, GTMetrix…)’」

不是這種情況。 最簡單的測試方法是安裝插件,打開「defer all JavaScript」,然後查看源代碼,看看是否排除了性能工具。

由於 WP-Optimize 對該問題的公開回應不包括他們的代碼調查中的任何內容,因此我再次聯繫了他們。 他們的副主管 Venkat Raj 無法回答為什麼插件中的其他設置會通過單擊單選按鈕靜默刪除用於性能測試工具的 JS。 公司戰略負責人喬·邁爾斯分享了他從文卡特·拉吉那裡收到的關於這個問題的最新信息:

「指控中使用的高級設置實際上有助於確定基本的 js/css 文件是否真的在減慢網頁速度。 此功能默認處於「關閉」狀態,並且只有知道自己在做什麼的高級用戶才能啟用。

「如果您有一個完全獨立的腳本或想從頁面速度測試中排除腳本(PageSpeed Insights、GTMetrix…),您可以使用此功能

「獨立腳本例如是『分析』或『像素』腳本。 網站運行不需要它們。 ‘如果你有一個完全獨立的樣式表或者想從頁面速度測試中排除樣式表(PageSpeed Insights、GTMetrix…),請使用它

這適用於第一個單選按鈕。 第二個按鈕沒有任何跡象表明它會在使用測試工具時關閉所有腳本 – WP-Optimize 的團隊似乎也沒有意識到單擊單選按鈕即可使用它。

Miles 無法確認這是否是它的預期工作方式,或者它是否是一個錯誤。 他也無法解釋為什麼流行的測試站點的名稱在代碼中被混淆了,但表示最初的開發人員「對我們不起作用,因為它是從其他地方重新利用的開源代碼」。

「然而,我們認為這會分散人們對虛假指控的注意力,重要的是用戶界面非常清楚地用於設置,因此用戶不會被欺騙,」邁爾斯說。

勞爾·佩肖托,作者 快速縮小 WP-Optimize 複製代碼的插件 (FVM) 表示,他可以確認該代碼是 FVM 的一部分,但表示使用方式不同:

FVM 上此類代碼的目的與 WP Optimize 上的完全不同,此外,用戶需要通過 wp-admin 手動啟用此選項(默認情況下禁用)。

該代碼的目的是選擇性地測試新腳本或插件對性能的影響,並幫助開發人員決定是否應該重構、刪除或替換繁重的插件或腳本。

這存在於 FVM 上以回答以下問題:
「我有一個生產現場,但我的表現很低。 如果這個插件根本不在這裡,但還沒有真正從網站上為普通用戶刪除它,性能會怎樣?」
「如果我可以在實際為每個人進行更改之前推遲所有腳本或當前與 defer 不兼容的特定腳本,性能會怎樣?」

關於其在 FVM 上的使用的官方解釋是 在插件的支持論壇中可用 從今天早上開始。

「我想 WP Optimize 僱傭的開發人員不明白這在 FVM 上做了什麼或在什麼設置下,或者他們可能想把它用作黑客,」Peixoto 說。

「我們還應該仔細記住,當時還沒有公開的網路生命體征指標,所以使用這樣的東西會產生更好的『可衡量』結果,從而提供產品優勢。」

Piexoto 表示,兩年前他「覺得不得不」刪除這段代碼,因為它經常被開發人員濫用,他們在為客戶的測試中作弊:

快進了一段時間,我意識到一些開發人員實際上是在使用它來欺騙他們的客戶的測試,所以我覺得有必要在 FVM 3(已經是 2020 年末)上做出刪除這個功能的決定,但遇到了當他們的客戶開始抱怨他們的分數下降時,憤怒的開發人員提出了很多抗議。

當時我嘗試解釋說,獲得好分數並不等於擁有良好的 Web Vitals 指標,但最終我放棄了,因為有些人更關心測試結果而不是實際性能。

在 FVM 3 發布之後,我基本上只是在維護它並在報告時進行小錯誤修復,因為我必須專註於其他事情。 我已經刪除了該功能並修復了版本 3.2.9 上未決的幾個錯誤並推送了更新,因此感謝您將其推薦給我。

無論出於何種原因,UpdraftPlus 選擇在 2020 年將此代碼合併到 WP-Optimize 中,並且正如昨天報道的那樣,此後一直沒有觸及該代碼。

昨天看似黑白分明的問題是一個更加微妙的情況。 WP-Optimize 的 FVM 代碼實現在 UI 中的文檔記錄很差,並且誤導了腳本的載入方式。 它可以引導網站所有者在沒有高級用戶的情況下激活它,並且在歷史上具有很高的濫用可能性。 當 Varghese 發現它時,他以一種煽動性的方式暴露了它,因為代碼被莫名其妙地混淆了,他確信自己發現了不法行為。 這使問題更加複雜,但開始了更廣泛、更重要的對話。

用戶是否應該通過這種輕鬆訪問(兩次單擊)來關閉性能測試工具的腳本? 同一行業的開發人員如何更好地傳達他們在其他產品中看到的對用戶的潛在危害? 機構應該實施什麼樣的代碼文檔要求來防止這種情況,即需要在幾天內調查代碼以找出它打算做什麼?

資源

相關文章