WP-Optimize-Plug-in, das beschuldigt wird, PageSpeed ​​und andere Leistungstest-Tools betrogen zu haben

Veröffentlicht: 2022-08-30

Gijo Varghese, ein Entwickler, der sich selbst als „Web-Performance-Enthusiasten“ bezeichnet, schockierte WordPress-Benutzer auf der ganzen Welt am Wochenende, als er einen Screenshot twitterte, der zeigt, wie WP-Optimize ausdrücklich das Laden ausgewählter JavaScript-Dateien verhindert, wenn Benutzer ihre Websites auf beliebte Leistung testen Testwerkzeuge.

„Wenn eine Website geladen wird, werden die JavaScript-Dateien nur geladen, wenn der Benutzeragent/Browser nicht Lighthouse/GTmetrix/Headless Chrome/Pingdom ist“, sagte Varghese. „Kein JS = Highscores. Aber für echte Benutzer werden diese JS-Dateien geladen!“

Varghese bestätigte, dass er die kostenlose Version von WP-Optimize testet, die auf mehr als einer Million WordPress-Sites verwendet wird. UpdraftPlus erwarb WP-Optimize im Jahr 2016 und behauptet, dass das Tool „alles hat, was Sie brauchen, um Ihre Website schnell und gründlich optimiert zu halten“. Eine kommerzielle Version wird auch über das kostenlose Plugin beworben, das auf WordPress.org gehostet wird.

„Sagen Sie mir, UpdraftPlus, wie soll ich Ihrem Unternehmen weiterhin die Backups meiner Kunden anvertrauen, wenn Sie diese irreführenden und betrügerischen Praktiken anwenden?“ sagte ein Kunde, Adam Lowe, als Antwort auf Vargheses Entdeckung des Plugins, das JS für Performance-Tools nicht lädt.

„Wow, ich kann nur sagen, was für eine absolute Enttäuschung“, sagte der Inhaber und Entwickler der WordPress-Agentur Brian Jackson.

Diese Art der Täuschung ähnelt auf unheimliche Weise einem Betrug, der von jemandem gemeldet wurde, der einen Freelancer für Performance bei Upwork unter Vertrag genommen hat, der die Ergebnisse von Google Pagespeed künstlich manipuliert hat. Andere Teilnehmer an der Diskussion auf Twitter verglichen es mit dem Volkswagen-Abgasskandal, bei dem festgestellt wurde, dass der Autohersteller seine Abgaskontrollen nur während Labortests aktivierte, um die Anforderungen der EPA nach einem Verstoß zu erfüllen. Die Fahrzeuge auf der Straße stoßen während der Fahrt bis zu 40-mal mehr Stickoxide aus als in den manipulierten Labortests.

Varghese und mehrere andere Teilnehmer des Gesprächs kamen zu dem Schluss, dass Websitebesitzer sich aus diesem Grund darauf konzentrieren sollten, was Benutzer in der realen Welt erleben, anstatt auf Testergebnisse von Leistungstools.

Selbst wenn sie sich auf echte Benutzererfahrungen konzentrieren, verlassen sich Websitebesitzer oft auf die Tests, um Probleme zu diagnostizieren und zu sehen, wie die Leistung einer Website verbessert werden kann. Sie erwarten nicht, dass ein Plugin JS-Dateien vor Performance-Tools versteckt. Das Austricksen der Tests hat die Glaubwürdigkeit von WP-Optimize untergraben.

"Wow. Wenn das stimmt, ist das ebenso kurzsichtig wie unentschuldbar“, sagte UpdraftPlus-Kunde Johnathon William. „Und ich frage mich, ob ich ihrem anderen Produkt, UpdraftPlus, vertrauen kann, das ich zum Sichern mehrerer Client-Sites verwende.“

Ich kontaktierte UpdraftPlus und der leitende Entwickler David Anderson sagte, das Unternehmen sei sich des Problems mit dem Code nicht bewusst, habe aber einen Teil der Hintergrundgeschichte erzählt. UpdraftPlus war kurz in Gesprächen mit dem Autor des Fast Velocity Minify-Plugins über die Möglichkeit, Kräfte zu bündeln, in dem er das Minifizierungsmodul innerhalb von WP-Optimize pflegen und mehr Benutzer gewinnen würde. Letztendlich konnten sie sich nicht einigen, aber während dieser Zeit haben die Entwickler von WP-Optimize Fast Velocity Minify unter der GPL geforkt und angepasst. Die Entwickler, die an dieser Anpassung gearbeitet haben, sind nicht mehr im Unternehmen.

„In der Übergabe an unser eigenes Quell-Repository vor 2,5 Jahren (Januar 2020) trug die Übergabe die Bezeichnung ‚Resolve ‚Add CSS and JS Minification GPL code from ‚Fast Velocity Minify‘ – Part 6‘“, sagte Anderson. „Teil einer Reihe von anfänglichen Zusammenführungen von Code, der umgestaltet wurde, um sauberer zu sein und unsere Voreinstellungen für den Codierungsstil zu verwenden (aber keine Funktionalität zu ändern). Die offensichtliche Absicht der Zusammenführung dieser Zeilen war es also, umgestalteten Code zu übernehmen, ohne zu diesem Zeitpunkt Änderungen vorzunehmen.

„Laut dem Commit-Verlauf (dh der ‚Git-Blamage'-Funktion) wurden seitdem keine Änderungen an diesem Code vorgenommen, dh er ist wie importiert. (Der Verlauf für WP Optimize ist auch in WordPress SVN öffentlich).“

Nach einer flüchtigen Untersuchung des Codes kam Anderson zu dem Schluss, dass sein Team ihn möglicherweise erneut untersuchen muss, da ihnen nicht bekannt war, was vor zwei Jahren hinzugefügt wurde.

„Wenn ich versuche, diese Funktion durch den Code in den Plugins zu verfolgen, scheint die Absicht auf den ersten Blick zu sein, dass, wenn der Website-Besucher ein ‚Bot‘ ist, Code, der für Bots sinnlos ist, nicht ausgeführt wird, " er sagte.

„Trotzdem scheinen 1) die Bot-Namen stark verschleiert/geschwärzt zu sein, was seltsam ist (warum?), und 2) gibt es viele offensichtlichere Bots, die dort nicht aufgeführt sind, wie z. B. der Googlebot selbst. Wenn mir diese Funktion heute zur Überprüfung vorgelegt würde, würde ich sicherlich fragen, warum das so ist. Ich kann meine Gedanken vor 32 Monaten nicht lesen, aber ich erinnere mich, dass es eine lange Reihe großer Patches war, also wurde es nicht Zeile für Zeile genau analysiert. Wir wussten, dass wir FVM als gutes Plugin identifiziert hatten, und unser Hauptaugenmerk lag darauf, es an unsere Struktur und unseren Stil anzupassen, und das waren die Dinge, die ich persönlich als abschließender Prüfer betrachtete.“

Zusammenfassend war dem Entwicklungsteam von UpdraftPlus dieser Code erst bekannt, als der Twitter-Thread am Wochenende veröffentlicht wurde.

„Ich bin auf jeden Fall froh, dass es zu unserer Absicht gebracht wurde“, sagte Anderson. „Der zugehörige Code-Kommentar zu einem verwandten Fragment in seiner ursprünglichen Quelle, dass es dazu gedacht ist, unnötige Anfragen für Bots zu verhindern, aber bei einer genaueren Betrachtung als diese Zeile zu der Zeit, ist das etwas, das wir uns ansehen wollen, wie es aussieht fragwürdig/seltsam, und wir tun das, indem wir es einem Teammitglied zuweisen, das unser Experte für JavaScript-Optimierungen ist.“

Anderson sagte auch, dass, wenn die JavaScript-Optimierungsexperten keinen legitimen Zweck für den Code finden, „er sicherlich entfernt wird“, mit einer klaren und eindeutigen Offenlegung der Gründe dafür.

Inzwischen hat UpdraftPlus einen Hinweis im Support-Forum des Plugins veröffentlicht, um die Benutzer darüber zu informieren, dass der Code derzeit untersucht wird.

„Um es klar zu sagen und die Benutzer zu beruhigen: Der fragliche Code ist nicht gefährlich, kein Virus, keine Infektion, nützlich für Hacker oder irgendetwas in der Art“, sagte Anderson. „Die Behauptung ist, dass ihr einziger Zweck darin besteht, Geschwindigkeitstests effektiv zu betrügen. Wenn ja, gehört ein solcher Code nicht in WP Optimize und wir werden ihn mit einer neuen Version entfernen. Die Integrität unserer Produkte und das Vertrauen unserer Kunden sind für uns von entscheidender Bedeutung (und absichtlich Dinge in Open-Source-Code zu packen, die Kompromisse eingehen, ist ehrlich gesagt eine dumme Sache).“