WP-Optimize プラグイン、PageSpeed およびその他のパフォーマンス テスト ツールの不正行為で告発される
公開: 2022-08-30「Web パフォーマンス愛好家」と自称する開発者の Gijo Varghese 氏は、週末に世界中の WordPress ユーザーに衝撃を与えました。ユーザーが人気のあるパフォーマンスでサイトをテストするときに、WP-Optimize が特定の JavaScript ファイルの読み込みを明示的に妨げているスクリーンショットをツイートしたときです。テスト ツール。
「サイトが読み込まれるとき、JavaScript ファイルは、ユーザー エージェント/ブラウザが Lighthouse/GTmetrix/Headless Chrome/Pingdom でない場合にのみ読み込まれます」と Varghese 氏は述べています。 「JSなし=高得点。 しかし、実際のユーザーの場合、これらの JS ファイルは読み込まれます!」
Varghese 氏は、100 万以上の WordPress サイトで使用されている無料バージョンの WP-Optimize をテストしていることを確認しました。 UpdraftPlus は 2016 年に WP-Optimize を買収し、このツールには「Web サイトを高速かつ完全に最適化するために必要なものがすべて揃っている」と主張しています。 商用バージョンも、WordPress.org でホストされている無料のプラグインを通じて宣伝されています。
「教えてください、UpdraftPlus、あなたがこれらの欺瞞的で詐欺的な慣行を使用している場合、どうすれば私のクライアントのバックアップであなたの会社を信頼し続けることができますか?」 Varghese がパフォーマンス ツール用の JS を読み込まないプラグインを発見したことに対して、ある顧客の Adam Lowe は次のように述べています。
WordPress エージェンシーのオーナー兼開発者である Brian Jackson 氏は次のように述べています。
このタイプの欺瞞は、Google Pagespeed の結果を人為的に操作した Upwork のパフォーマンス フリーランサーと契約した誰かによって報告された詐欺に不気味に似ています。 ツイッターでの議論に参加した他の人々は、自動車メーカーが違反後にEPAの要件を満たすために、実験室でのテスト中にのみ排出ガス制御を有効にしたことが判明したフォルクスワーゲンの排出ガススキャンダルと比較した. 道路上の車両は、運転中に最大 40 倍の窒素酸化物を排出しました。
Varghese と会話に参加した他の何人かは、サイトの所有者がパフォーマンス ツールのテスト スコアではなく、実際のユーザーが経験していることに注目すべき理由がここにあると結論付けました。
実際のユーザー エクスペリエンスに重点を置いている場合でも、サイト所有者は多くの場合、問題を診断し、サイトのパフォーマンスを改善する方法を確認するためにテストに依存しています。 彼らは、プラグインが JS ファイルをパフォーマンス ツールから隠しているとは思っていません。 テストをだますことで、WP-Optimize の信頼性が損なわれました。
"わお。 もし本当なら、これは許しがたいほど近視眼的です。 「そして、いくつかのクライアント サイトのバックアップに使用している、同社の他の製品である UpdraftPlus を信頼できるかどうか疑問に思います。」
私が UpdraftPlus に連絡したところ、主任開発者の David Anderson 氏は、同社はコードの問題を認識していないが、裏話のいくつかは関連していると述べた。 UpdraftPlus は、Fast Velocity Minify プラグインの作成者と、力を組み合わせる可能性について簡単に話し合っていました。その中で、彼は WP-Optimize 内で縮小モジュールを維持し、より多くのユーザーを獲得します。 最終的に彼らは合意に達することができませんでしたが、その間に WP-Optimize の開発者は、GPL の下で Fast Velocity Minify をフォークして適応させました。 その適応に取り組んだ開発者は、もう会社にいません。
「2.5 年前 (2020 年 1 月) の私たち自身のソース リポジトリへのコミットでは、コミットは「Resolve 'Add CSS and JS Minification GPL code from 'Fast Velocity Minify' – Part 6'」とラベル付けされていました。 「一連のコードの最初のマージの一部で、リファクタリングされてクリーンになり、コーディング スタイルの設定を使用します (ただし、機能は変更されません)。 したがって、これらの行をマージした意図は、その段階で変更を加えることなく、リファクタリングされたコードを引き継ぐことでした。
「コミット履歴 (つまり、'git Blame' 関数) によると、それ以降、そのコードに変更は加えられていません。つまり、インポートされたままです。 (WP Optimize の履歴は WordPress SVN でも公開されています)。
コードを大まかに調べた後、アンダーソン氏は、2 年前に何が追加されたかを認識していなかったため、彼のチームはコードを再調査する必要があるかもしれないと結論付けました。
「プラグイン内のコードを通じてその機能を追跡しようとすると、一見したところ、ウェブサイトの訪問者が「ボット」である場合、ボットにとって無意味なコードは実行されないように見えます。 " 彼は言った。
「しかし、そうは言っても、1) ボットの名前がかなり難読化/編集されているように見えますが、これは奇妙です (なぜ?)。2) Googlebot 自体など、そこにリストされていない明らかなボットがたくさんあります。 その機能が今日レビューのために私の前に置かれたとしたら、私は確かにそれがなぜそうなのか疑問に思います. 32 か月前のことを思い出すことはできませんが、長い一連の大規模なパッチだったことを覚えているので、行ごとに詳細に分析されていませんでした。 FVM が優れたプラグインであると判断したことはわかっており、私たちの主な焦点はそれを私たちの構造とスタイルに適応させることであり、最終的なレビュー担当者として私が個人的に見ていたことです。」
要約すると、週末に Twitter スレッドが公開されるまで、UpdraftPlus の開発チームはこのコードを認識していませんでした。
アンダーソン氏は、「それが私たちの意図に合ったことを本当にうれしく思います。 「関連するコードは、元のソースの関連するフラグメントに、ボットへの不要なリクエストを防ぐことを意図しているとコメントしていますが、当時のその行よりも詳細な調査では、それは見てみたいものです。疑わしい/奇妙であり、JavaScript 最適化の専門家であるチーム メンバーに割り当てることで、それを実行します。」
Anderson 氏はまた、JavaScript 最適化の専門家がコードの正当な目的を見つけられない場合、その背後にある理由を明確かつ明確に開示して、「それは確実に削除されます」と述べました。
それまでの間、UpdraftPlus はプラグインのサポート フォーラムで通知を公開し、コードが現在調査中であることをユーザーに知らせました。
「明確にして、ユーザーの心を落ち着かせるために: 問題のコードは、危険なものでも、ウイルスでも、感染症でも、ハッカーに役立つものでも、そのようなものでもありません」とアンダーソン氏は述べています。 「主張は、存在する唯一の目的は、速度テストで事実上ごまかすことであるということです. そのようなコードは WP Optimize に属さないため、新しいリリースで削除します。 私たちの製品の完全性と顧客の信頼は、私たちにとって不可欠です (そして、オープン ソース コードに故意に妥協するようなものを入れることは、率直に言って愚かなことです)。」