پلاگین WP-Optimize متهم به تقلب صفحه سرعت و سایر ابزارهای تست عملکرد
گیجو ورقزه، توسعه دهنده ای که خود را “علاقه مند به عملکرد وب” می نامد، در آخر هفته با انتشار تصویری از نحوه عملکرد کاربران وردپرس در سراسر جهان را شوکه کرد. WP-Optimize ظاهراً از بارگیری فایلهای جاوا اسکریپت منتخب در زمانی که کاربران سایتهای خود را از طریق ابزارهای رایج تست عملکرد آزمایش میکنند، جلوگیری میکند.
Varghese گفت: «هنگامی که یک سایت بارگیری می شود، فایل های جاوا اسکریپت تنها زمانی بارگذاری می شوند که عامل کاربر/مرورگر Lighthouse/GTmetrix/Headless Chrome/Pingdom نباشد. “بدون JS = نمرات بالا. اما برای کاربران واقعی، این فایلهای JS بارگذاری میشوند!»
Varghese تایید کرد که در حال آزمایش نسخه رایگان WP-Optimize است که در بیش از یک میلیون سایت وردپرس استفاده می شود. UpdraftPlus WP-Optimize را در سال 2016 خریداری کرد و ادعا می کند که این ابزار “همه چیزهایی را که برای سریع و بهینه سازی وب سایت خود نیاز دارید را دارد.” آ نسخه تجاری همچنین از طریق افزونه رایگان که در WordPress.org میزبانی شده است، تبلیغ می شود.
«به من بگو، UpdraftPlus، وقتی شما از این روشهای فریبنده و کلاهبردار استفاده میکنید، چگونه باید به پشتیبانهای مشتریانم به شرکت شما اعتماد کنم؟» یک مشتری آدام لو گفت در پاسخ به کشف Varghese مبنی بر عدم بارگیری افزونه JS برای ابزارهای عملکرد.
برایان جکسون، مالک و توسعه دهنده آژانس وردپرس، گفت: “وای، تنها چیزی که می توانم بگویم ناامید کننده است.”
این نوع فریب ادعایی به طرز وحشتناکی شبیه الف است کلاهبرداری توسط شخصی گزارش شده است که با یک فریلنسر عملکرد در Upwork قرارداد بسته است که به طور مصنوعی نتایج Google Pagespeed را دستکاری کرده است. دیگرانی که در بحث توییتر شرکت کردند، آن را با توئیتر مقایسه کردند رسوایی آلایندگی فولکس واگن جایی که مشخص شد خودروساز کنترلهای آلایندگی خود را فقط در طول آزمایشهای آزمایشگاهی فعال میکند تا پس از تخلف، الزامات EPA را برآورده کند. وسایل نقلیه موجود در جاده در مقایسه با عملکرد آنها در آزمایشات آزمایشگاهی تقلبی، در حین رانندگی تا 40 برابر بیشتر اکسید نیتروژن ساطع کردند.
Varghese و چندین شرکت کننده دیگر در گفتگو به این نتیجه رسیدند که به همین دلیل است که صاحبان سایت باید به جای نمرات تست ابزار عملکرد، بر آنچه کاربران دنیای واقعی تجربه می کنند تمرکز کنند.
حتی زمانی که بر تجربیات واقعی کاربر تمرکز میکنند، صاحبان سایت اغلب به آزمایشها برای تشخیص مشکلات و دیدن اینکه چگونه عملکرد یک سایت را میتوان بهبود بخشید، تکیه میکنند. آنها انتظار ندارند که یک افزونه فایل های JS را از ابزارهای عملکرد پنهان کند. فریب تست ها اعتبار WP-Optimize را از بین برده است.
“وای. جاناتون ویلیام، مشتری UpdraftPlus، اگر درست باشد، این به همان اندازه کوته بینانه و غیرقابل توجیه است. گفت. و این باعث میشود به این فکر کنم که آیا میتوانم به محصول دیگر آنها، UpdraftPlus، که برای پشتیبانگیری از چندین سایت مشتری استفاده میکنم، اعتماد کنم.
من با UpdraftPlus تماس گرفتم و دیوید اندرسون، توسعهدهنده اصلی، گفت که این شرکت از مشکل مربوط به کد اطلاعی نداشت اما برخی از پیشینهها را به آن مربوط کرد. UpdraftPlus برای مدت کوتاهی در حال مذاکره با نویسنده کتاب بود کاهش سرعت سریع افزونه ای در مورد امکان ترکیب نیروها، که در آن او ماژول minification را در WP-Optimize حفظ می کند و کاربران بیشتری را به دست می آورد. در نهایت آنها نتوانستند به توافق برسند، اما در آن زمان توسعه دهندگان WP-Optimize Fast Velocity Minify را تحت GPL منشعب کردند و تطبیق دادند. توسعه دهندگانی که روی آن انطباق کار کردند، دیگر با شرکت نیستند.
اندرسون گفت: «در تعهد به مخزن منبع خودمان، 2.5 سال پیش (ژانویه 2020)، این تعهد با عنوان «حل و فصل «افزودن کد GPL CSS و JS Minification از «Fast Velocity Minify» – قسمت 6» بود. بخشی از مجموعه ای از ادغام های اولیه کد که برای تمیزتر شدن و استفاده از اولویت های سبک کدنویسی ما مجدداً فاکتورگیری شد (اما هیچ عملکردی را تغییر نداد). بنابراین قصد آشکار از ادغام آن خطوط این بود که کد بازسازی شده را بدون ایجاد هیچ تغییری در آن مرحله وارد کنیم.
با توجه به تاریخچه commit (یعنی تابع ‘git blame’) هیچ تغییری در آن کد ایجاد نشده است، یعنی به صورت وارداتی است. (سابقه WP Optimize در WordPress SVN نیز عمومی است).
پس از بررسی گذرا کد، اندرسون به این نتیجه رسید که تیمش ممکن است نیاز به بررسی مجدد آن داشته باشد، زیرا آنها از آنچه دو سال پیش اضافه شده بود آگاه نبودند.
“همانطور که سعی می کنم آن عملکرد را از طریق کدهای موجود در افزونه ها ردیابی کنم، قصد دارمدر مواجهه با آنبه نظر میرسد که اگر بازدیدکننده وبسایت یک «ربات» باشد، کدی که برای رباتها بیمعنی است، اجرا نخواهد شد.»
با این حال، با گفتن این موضوع، 1) به نظر میرسد که نام رباتها به شدت مبهم/تجدید شده است، که عجیب است (چرا؟)، و 2) تعداد زیادی ربات واضحتر وجود دارد که در آنجا فهرست نشدهاند، مانند خود Googlebot. اگر آن عملکرد امروز برای بازبینی در اختیار من قرار میگرفت، مطمئناً میپرسیدم که چرا چنین است. نمیتوانم خودم را به 32 ماه پیش بخوانم، اما به یاد میآورم که مجموعهای طولانی از وصلههای بزرگ بود، بنابراین بهصورت خط به خط دقیق تحلیل نمیشد. ما میدانستیم که FVM را بهعنوان یک افزونه خوب شناسایی کردهایم و تمرکز اصلی ما روی تطبیق آن با ساختار و سبک خود بود، و اینها چیزهایی بود که من شخصاً بهعنوان بازبینیکننده نهایی به آن نگاه میکردم.»
به طور خلاصه، تیم توسعه UpdraftPlus تا زمانی که موضوع توییتر در آخر هفته منتشر نشد، از این کد آگاه نبود.
اندرسون گفت: «مطمئناً خوشحالم که آن را به هدف ما رساندم. “کد مرتبط در یک قطعه مرتبط در منبع اصلی خود اظهار نظر می کند که قصد دارد از درخواست های غیرضروری برای ربات ها جلوگیری کند، اما در بررسی دقیق تر از آن خط در آن زمان، این چیزی است که ما می خواهیم همانطور که به نظر می رسد به آن نگاه کنیم. سوال برانگیز/عجیب است، و ما این کار را با اختصاص دادن آن به یکی از اعضای تیم که متخصص ما در بهینه سازی جاوا اسکریپت است، انجام خواهیم داد.
اندرسون همچنین گفت که اگر کارشناسان بهینهسازی جاوا اسکریپت نتوانند هیچ هدف قانونی برای کد پیدا کنند، “مطمئناً حذف خواهد شد”، با افشای واضح و بدون ابهام برای استدلال پشت آن.
در همین حال، UpdraftPlus دارد اطلاعیه ای منتشر کرد در انجمن پشتیبانی افزونه به اطلاع کاربران می رساند که کد در حال حاضر در دست بررسی است.
اندرسون گفت: “برای روشن بودن و آرام کردن ذهن کاربران: کد مورد بحث خطرناک، ویروس، عفونت، مفید برای هکرها یا هر چیز دیگری از این نوع نیست.” «این ادعا این است که تنها هدف آن از وجود، تقلب در تستهای سرعت است. چنین کدی، اگر چنین باشد، به WP Optimize تعلق ندارد و با نسخه جدید آن را حذف خواهیم کرد. یکپارچگی محصولات ما و اعتماد مشتریان ما برای ما ضروری است (و عمدا قرار دادن چیزها در کد منبع باز که این کار را به خطر می اندازد، رک و پوست کنده، کار احمقانه ای است).