PageSpeed ​​ve Diğer Performans Test Araçlarını Hile Yapmakla Suçlanan WP-Optimize Eklentisi

Yayınlanan: 2022-08-30

Kendisine "web performansı meraklısı" diyen bir geliştirici olan Gijo Varghese, hafta sonu boyunca WP-Optimize'ın, kullanıcılar sitelerini popüler performans aracılığıyla test ederken belirli JavaScript dosyalarının yüklenmesini açıkça nasıl engellediğine dair bir ekran görüntüsü tweet attığında, dünyanın dört bir yanındaki WordPress kullanıcılarını şok etti. test araçları.

Varghese, "Bir site yüklendiğinde, JavaScript dosyaları yalnızca kullanıcı aracısı/tarayıcı Lighthouse/GTmetrix/Headless Chrome/Pingdom olmadığında yüklenir" dedi. “JS yok = yüksek puanlar. Ancak gerçek kullanıcılar için bu JS dosyaları yüklenir!”

Varghese, bir milyondan fazla WordPress sitesinde kullanılan WP-Optimize'ın ücretsiz sürümünü test ettiğini doğruladı. UpdraftPlus, 2016 yılında WP-Optimize'ı satın aldı ve aracın "web sitenizi hızlı ve kapsamlı bir şekilde optimize etmek için ihtiyacınız olan her şeye sahip olduğunu" iddia ediyor. WordPress.org'da barındırılan ücretsiz eklenti aracılığıyla ticari bir sürüm de tanıtılır.

"Söyle bana UpdraftPlus, sen bu aldatıcı ve hileli uygulamaları kullanırken müşterilerimin yedekleri konusunda şirketinize güvenmeye nasıl devam edeceğim?" Bir müşteri Adam Lowe, Varghese'nin eklentinin performans araçları için JS yüklemediğini keşfetmesine yanıt olarak söyledi.

WordPress ajansı sahibi ve geliştiricisi Brian Jackson, "Vay canına, söyleyebileceğim tek şey tam bir hayal kırıklığı" dedi.

Bu tür bir aldatma, Upwork'te Google Pagespeed sonuçlarını yapay olarak manipüle eden bir performans serbest çalışanı ile sözleşme yapan biri tarafından bildirilen bir dolandırıcılığa ürkütücü bir şekilde benzer. Twitter'daki tartışmaya katılan diğerleri, bunu, otomobil üreticisinin bir ihlalden sonra EPA'nın gereksinimlerini karşılamak için yalnızca laboratuvar testleri sırasında emisyon kontrollerini etkinleştirdiği tespit edilen Volkswagon emisyon skandalıyla karşılaştırdı. Yoldaki araçlar, sürüş sırasında, hileli laboratuvar testlerinde gösterdikleri performansa kıyasla 40 kata kadar daha fazla nitrojen oksit yayar.

Varghese ve sohbete katılan diğer birkaç katılımcı, bu nedenle site sahiplerinin performans aracı test puanları yerine gerçek dünya kullanıcılarının deneyimlediklerine odaklanması gerektiği sonucuna vardı.

Site sahipleri, gerçek kullanıcı deneyimlerine odaklanırken bile, sorunları teşhis etmek ve bir sitenin performansının nasıl iyileştirilebileceğini görmek için genellikle testlere güvenir. Bir eklentinin JS dosyalarını performans araçlarından gizlemesini beklemiyorlar. Testleri kandırmak, WP-Optimize'ın güvenilirliğini aşındırdı.

"Vay. Eğer doğruysa, bu affedilemez olduğu kadar kısa görüşlüdür, ”dedi UpdraftPlus müşterisi Johnathon William. "Ve birkaç müşteri sitesini yedeklemek için kullandığım diğer ürünleri UpdraftPlus'a güvenip güvenemeyeceğimi merak ediyorum."

UpdraftPlus ile iletişime geçtim ve baş geliştirici David Anderson, şirketin kodla ilgili sorunun farkında olmadığını, ancak arka planın bir kısmıyla ilgili olduğunu söyledi. UpdraftPlus, Fast Velocity Minify eklentisinin yazarıyla, miniifikasyon modülünü WP-Optimize içinde tutacağı ve daha fazla kullanıcı kazanacağı kuvvetleri birleştirme olasılığı hakkında kısaca görüştü. Sonunda bir anlaşmaya varamadılar, ancak bu süre zarfında WP-Optimize'ın geliştiricileri, Fast Velocity Minify'ı GPL altında çatalladı ve uyarladı. Bu uyarlama üzerinde çalışan geliştiriciler artık şirkette değil.

Anderson, "2,5 yıl önce (Ocak 2020) kendi kaynak depomuza yapılan taahhütte, "Çözüm" olarak etiketlenmişti, "Hızlı Velocity Minify'dan CSS ve JS Minification GPL kodu ekle - Bölüm 6", dedi Anderson. “Daha temiz olması ve kodlama stili tercihlerimizi kullanması (ancak herhangi bir işlevi değiştirmemesi) için yeniden faktörlendirilen bir dizi ilk kod birleştirmenin parçası. Dolayısıyla, bu satırların birleştirilmesinin görünen amacı, o aşamada herhangi bir değişiklik yapmadan yeniden düzenlenmiş kodu getirmekti.

“Taahhüt geçmişine göre (yani 'git suçlama' işlevi), o zamandan beri bu kodda hiçbir değişiklik yapılmadı, yani ithal edildi. (WP Optimize'ın geçmişi, WordPress SVN'de de herkese açıktır).”

Kodun üstünkörü bir incelemesinden sonra Anderson, ekibinin iki yıl önce ne eklendiğinden haberdar olmadıkları için kodu yeniden incelemesi gerekebileceği sonucuna vardı.

“Eklentiler içindeki kod aracılığıyla bu işlevi izlemeye çalıştığımda , görünüşe göre, web sitesi ziyaretçisi bir 'bot' ise, o zaman botlar için anlamsız olan kod gerçekleştirilmeyecek gibi görünüyor. "dedi.

“Ancak bunu söyledikten sonra, 1) bot adları aşırı derecede karıştırılmış/düzenlenmiş görünüyor, bu garip (neden?) ve 2) Googlebot'un kendisi gibi orada listelenmeyen daha birçok belirgin bot var. Bu işlev bugün gözden geçirilmek üzere önüme konulsaydı, bunun neden böyle olduğunu kesinlikle sorgulardım. 32 ay önce kendimi düşünemiyorum, ancak uzun bir dizi büyük yamalar olarak hatırlıyorum, bu yüzden satır satır yakından analiz edilmiyor. FVM'yi iyi bir eklenti olarak tanımladığımızı biliyorduk ve ana odak noktamız onu yapımıza ve tarzımıza uyarlamaktı ve son gözden geçiren olarak şahsen baktığım şeyler bunlardı."

Özetle, UpdraftPlus'ın geliştirme ekibi, hafta sonu Twitter ileti dizisi yayınlanana kadar bu kodun farkında değildi.

Anderson, “Bunun amacımıza ulaşmasından kesinlikle memnunum” dedi. "Orijinal kaynağındaki ilgili bir parça üzerinde, botlar için gereksiz istekleri engellemeyi amaçlayan ilgili kod yorumu, ancak o sırada o satırdan daha yakından incelendiğinde, bu, göründüğü gibi bakmak isteyeceğimiz bir şey. şüpheli/garip ve bunu JavaScript optimizasyonlarında uzmanımız olan bir ekip üyemize atayarak yapacağız.”

Anderson ayrıca, JavaScript optimizasyon uzmanları kod için herhangi bir meşru amaç bulamazlarsa, arkasındaki mantık için açık ve net bir açıklama ile "kesinlikle kaldırılacağını" söyledi.

Bu arada UpdraftPlus, eklentinin destek forumunda kullanıcıları kodun şu anda araştırılmakta olduğunu bildirmek için bir bildirim yayınladı.

Anderson, "Açık olmak ve kullanıcıların zihnini rahatlatmak için: söz konusu kod tehlikeli değil, bir virüs, bir enfeksiyon, bilgisayar korsanları için yararlı veya bu tür herhangi bir şey değil" dedi. "İddia, var olmadaki tek amacının hız testlerinde etkili bir şekilde hile yapmak olduğudur. Böyle bir kod, eğer öyleyse, WP Optimize'a ait değildir ve yeni bir sürümle kaldıracağız. Ürünlerimizin bütünlüğü ve müşterilerimizin güveni bizim için çok önemlidir (ve açık kaynak koduna kasıtlı olarak bir şeyler koymak, bu açıkçası aptalca bir şeydir).