WP-Optimize اتهامات تقلب در ابزارهای عملکرد را رد می کند
دیروز، ما منتشر شده ادعاهای Gijo Varghese علیه UpdraftPlus، سازندگان WP-Optimize. Varghese بنیانگذار FlyingProxy، یک شرکت رقیب است و خود را به عنوان یک “علاقه مند به عملکرد” معرفی می کند. او این افزونه را متهم به «تقلب Pagespeed و سایر ابزارها» با پنهان کردن فایلهای جاوا اسکریپت از بارگیری زمانی که کاربران سایتهای خود را از طریق ابزارهای رایج تست عملکرد آزمایش میکنند، کرد. این کد از مجموعهای عجیب از نامهای مبهم برای ابزارهای آزمایشی استفاده میکند که باعث شک او شد.
Varghese از ذکر در خود غافل شد توییت زمانی که یکی از تنظیمات افزونه در Minify > JS برای به تعویق انداختن جاوا اسکریپت تنظیم شود، این اتفاق می افتد. دو تنظیمات دکمه رادیویی وجود دارد اما آنها گیج کننده هستند.
اولین دکمه رادیویی به کاربران اجازه می دهد تا فایل های جاوا اسکریپت انتخاب شده را به تعویق بیاندازند. میگوید فایلها بهصورت ناهمزمان بارگذاری میشوند (نه مشابه defer)، و همچنین میگوید که کاربران اگر میخواهند اسکریپتها را از تستهای سرعت صفحه حذف کنند، باید اولین دکمه رادیویی را انتخاب کنند. مشخص نیست که چگونه اسکریپت ها برای کاربر یا سایت های آزمایشی بارگذاری می شوند. حذف کردن به معنای به تعویق انداختن نیست، بنابراین در این مورد رابط کاربری تنظیمات تا حدی گمراه کننده است و باید واضح تر باشد.
گزینه رادیویی دوم برای کاربرانی است که به سادگی به دنبال به تعویق انداختن همه جاوا اسکریپت هستند. اگر یکی انتخاب کند استفاده از جاوا اسکریپت را به تعویق بیندازید (اگر نیاز به پشتیبانی دارید از این روش استفاده کنید مرورگرهای قدیمی)” باید دقیقاً همان کاری را انجام دهد که در پیوند توضیح داده است:
اگر
defer
ویژگی تنظیم شده است، مشخص می کند که اسکریپت به موازات تجزیه صفحه دانلود می شود و پس از اتمام تجزیه صفحه اجرا می شود.
حتی اگر UI می گوید همه فایل ها را به تعویق می اندازد، WP-Optimize هرگز جاوا اسکریپت را برای سایت های تست عملکرد بارگیری نمی کند. در این گزینه دوم، حذف سایت های تست بدون اجازه کاربران اتفاق می افتد. اگر کاربران آن را می خواستند، دکمه رادیویی قبلی را انتخاب می کردند و به صراحت مشخص می کردند که کدام اسکریپت ها را حذف کنند.
Varghese برخی از جزئیات مهم را در گزارش اصلی خود حذف کرد، اما از این نظر دقیق بود که تنظیمات خاصی در مورد آنچه واقعا انجام می دهند گمراه کننده است. او این را در یک ویدیوی بعدی نشان داد که در آن هیچ اسکریپت دستی برای حذف وجود ندارد و گزینه رادیویی دوم بررسی شده است.
Varghese گفت: “آنها گزینه ای را برای کاربران فراهم می کنند تا ابزارهای تست تقلب کنند.” همچنین، استفاده از نامهایی مانند «ighth» برای Lighthouse و «tmetr» برای GTmetrix به وضوح نشان میدهد که آنها در تلاش هستند چه کار کنند.
“بیشتر کاربران سعی می کنند ویژگی های مختلف را غیرفعال و فعال کنند تا ببینند کدام یک سرعت / امتیاز در ابزارهای تست را افزایش می دهد.”
Varghese معتقد است که نیازی به انجام متفاوت کارها برای آزمایش ابزار و انسان نیست، زیرا این می تواند برای صاحبان سایت گیج کننده باشد. ادعای او جزئیات قابل توجهی را حذف کرد و به طور ضمنی نشان داد که همه اینها در کد پنهان است. برای یکی از تنظیمات است اما برای دیگری نه. رابط نشان می دهد که شما باید اسکریپت ها را به صورت دستی وارد کنید تا از آزمایش حذف شوند، اما این نیز گمراه کننده است.
WP-Optimize پاسخی عمومی به این اتهامات منتشر کرد امروز، اما هیچ یک از نتایج حاصل از بررسی کد را که آنها تکمیل کردند، فاش نکرده است. در عوض، این شرکت به ویدئویی که توسط پیتر ویلکینسون ساخته شده است استناد کرد موتور دیوی، که ادعا می کند کاربران باید به صورت دستی اسکریپت ها را وارد کنند تا سایت های آزمایشی آنها را حذف کنند.
از ویلکینسون نقل شده است که به این نتیجه رسیده است که “گیجو وارگزه از فریب برای تبلیغ صفحات پرنده و فلاینگ پرس” برای جلب توجه عمومی در توییتر به این موضوع استفاده کرده است.
ویلکینسون گفت: «در واقعیت (براساس تحقیقات من) WP-Optimize ابزارهای Pagespeed را هنگام نصب یا کوچک کردن جاوا اسکریپت خود تقلب نکنید.
برای «تقلب» ابزارها، باید فایلهای JS را که میخواهید بهصورت ناهمزمان بارگیری کنند، بهصورت دستی به تنظیماتی اضافه کنید که به وضوح دارای برچسب «اگر یک اسکریپت کاملاً مستقل دارید یا میخواهید اسکریپتها را از آزمایشهای سرعت صفحه حذف کنید، از این استفاده کنید. PageSpeed Insights، GTMetrix…)”
این مورد نیست. ساده ترین راه برای آزمایش این است که افزونه را نصب کنید، «به تعویق انداختن همه جاوا اسکریپت» را روشن کنید، و سپس منبع را مشاهده کنید تا ببینید که ابزارهای عملکرد حذف شده اند.
از آنجایی که پاسخ عمومی WP-Optimize به این موضوع شامل هیچ موردی از بررسی کد آنها نبود، من دوباره با آنها تماس گرفتم. معاون رهبری آنها Venkat Raj در دسترس نبود تا پاسخ دهد که چرا تنظیمات دیگر در این افزونه بیصدا JS را برای ابزارهای تست عملکرد با کلیک یک دکمه رادیویی حذف میکنند. جو مایلز، رئیس استراتژی شرکت، آخرین اطلاعاتی را که در مورد این موضوع از Venkat Raj دریافت کرده به اشتراک گذاشت:
«تنظیمات پیشرفته مورد استفاده در این ادعا در واقع برای یافتن اینکه آیا فایلهای ضروری js/css واقعاً صفحه وب را کند میکنند مفید است یا خیر. این ویژگی بهطور پیشفرض، «خاموش» است و فقط توسط کاربران پیشرفتهای فعال میشود که میدانند در حال انجام چه کاری هستند.
اگر یک اسکریپت کاملاً مستقل دارید یا میخواهید اسکریپتها را از آزمایشهای سرعت صفحه حذف کنید، میتوانید از این ویژگی استفاده کنید (PageSpeed Insights، GTMetrix…)
اسکریپتهای مستقل برای مثال اسکریپتهای «تحلیلی» یا «پیکسلی» هستند. آنها برای کار کردن وب سایت مورد نیاز نیستند. ‘اگر یک شیوه نامه کاملاً مستقل دارید یا میخواهید شیوه نامهها را از آزمایشهای سرعت صفحه حذف کنید، از آن استفاده کنید (PageSpeed Insights، GTMetrix…)‘
این برای اولین دکمه رادیویی اعمال می شود. دکمه دوم هیچ نشانه ای از خاموش کردن همه اسکریپت ها در هنگام استفاده از ابزارهای آزمایشی ندارد – به نظر نمی رسد تیم WP-Optimize از اینکه با کلیک یک دکمه رادیویی در دسترس است، آگاه باشد.
مایلز نمی تواند تأیید کند که آیا این روش در نظر گرفته شده است یا اینکه یک اشکال است. او همچنین نتوانست دلیل مبهم بودن نام سایتهای آزمایشی محبوب در کد را توضیح دهد، اما گفت که توسعهدهنده اصلی «برای ما کار نمیکند، زیرا کد منبع باز است که از جاهای دیگر تغییر کاربری داده است».
مایلز گفت: «با این حال، ما معتقدیم که این یک حواس پرتی از اتهامات نادرست است، و آنچه مهم است این است که رابط کاربری کاملاً واضح است برای تنظیمات، بنابراین کاربران فریب نخواهند خورد.
رائول پیکسوتو، نویسنده کتاب کاهش سرعت سریع (FVM)، افزونهای که WP-Optimize از آن کد را کپی کرده است، گفت که میتواند تأیید کند که این کد بخشی از FVM است، اما گفت که به همان روش استفاده نشده است:
هدف چنین کدی در FVM با آنچه در WP Optimize وجود داشت کاملاً متفاوت بود و علاوه بر این لازم بود کاربران به صورت دستی این گزینه را از طریق wp-admin فعال کنند (به طور پیش فرض غیرفعال بود).
هدف آن کد آزمایش انتخابی تأثیر اسکریپت ها یا پلاگین های جدید در عملکرد و کمک به توسعه دهندگان تصمیم گیری در مورد اصلاح، حذف یا جایگزینی پلاگین ها یا اسکریپت های سنگین بود.
این در FVM برای پاسخ به سوالاتی مانند این وجود داشت:
من یک سایت تولید دارم و عملکردم پایین است. اگر این افزونه به سادگی در اینجا نبود، اما بدون حذف آن از سایت برای کاربران عادی، چه عملکردی داشت؟»
«اگر میتوانم همه اسکریپتها یا اسکریپتهای خاصی را که در حال حاضر با defer سازگار نیستند، قبل از اینکه واقعاً این تغییر را برای همه انجام دهم، به تعویق بیاندازم، عملکرد چگونه خواهد بود؟»
توضیح رسمی در مورد استفاده از آن در FVM است در انجمن پشتیبانی افزونه موجود است از امروز صبح
Peixoto گفت: “من تصور می کنم که توسعه دهندگان استخدام شده توسط WP Optimize متوجه نشده بودند که این برنامه در FVM چه کاری انجام می دهد یا تحت چه تنظیماتی، یا شاید وسوسه شده باشند که از آن به عنوان هک استفاده کنند.”
ما همچنین باید به دقت به یاد داشته باشیم که در آن زمان، هنوز هیچ معیاری در مورد عناصر حیاتی وب به صورت عمومی در دسترس نبود، بنابراین استفاده از چیزی شبیه به این میتوانست نتایج «قابل اندازهگیری» بهتری داشته باشد، در نتیجه مزیت محصول را ارائه میدهد.»
Piexoto گفت که دو سال پیش «احساس میکند» مجبور است این کد را حذف کند، زیرا اغلب توسط توسعهدهندگانی که در تستهای مشتریان خود تقلب میکردند از آن سوء استفاده میشد:
مدتی به جلو حرکت کنید، و متوجه شدم که برخی از توسعه دهندگان در واقع از این برای تقلب در تست های مشتریان خود استفاده می کنند، بنابراین من ناگزیر شدم در FVM 3 (در اواخر سال 2020) تصمیم بگیرم تا این ویژگی را حذف کنم، که توسط یک اعتراضات بسیاری از توسعه دهندگان عصبانی زمانی که مشتریان آنها شروع به شکایت از کاهش امتیازات خود کردند.
در آن زمان سعی کردم توضیح دهم که داشتن نمره خوب با داشتن معیارهای حیاتی وب خوب یکسان نیست، اما در نهایت از آن صرف نظر کردم، زیرا برخی از افراد بیشتر به نتایج آزمون اهمیت می دهند تا عملکرد واقعی.
پس از انتشار FVM 3، من اساساً فقط آن را حفظ می کنم و در صورت گزارش، رفع اشکال کوچکی انجام می دهم، زیرا باید روی چیزهای دیگر تمرکز کنم. من آن عملکرد را حذف کردم و چند باگ معلق در نسخه 3.2.9 را برطرف کردم و به روز رسانی را انجام دادم، بنابراین از شما برای ارجاع این موضوع به من متشکرم.
به هر دلیلی، UpdraftPlus تصمیم گرفت این کد را در سال 2020 با WP-Optimize ادغام کند و همانطور که دیروز گزارش شد، از آن زمان تاکنون این کد را لمس نکرده است.
آنچه دیروز به نظر میرسید یک موضوع سیاه و سفید بود، یک وضعیت ظریفتر است. اجرای کد FVM توسط WP-Optimize در رابط کاربری ضعیف است و در مورد نحوه بارگذاری اسکریپت ها گمراه کننده است. این می تواند صاحبان سایت را به سمت فعال کردن آن بدون استفاده از کاربران پیشرفته سوق دهد و از نظر تاریخی پتانسیل بالایی برای سوء استفاده دارد. وقتی وارگزی آن را کشف کرد، آن را به شیوهای تحریکآمیز فاش کرد، و احساس کرد که به دلیل مبهم بودن کد به طرز غیرقابل توضیحی اشتباه کرده است. این موضوع موضوع را پیچیده کرد اما گفت و گوی گسترده تر و مهمی را آغاز کرد.
آیا کاربران باید این نوع دسترسی آسان (دو کلیک) به خاموش کردن اسکریپتهای ابزارهای تست عملکرد داشته باشند؟ چگونه توسعه دهندگان در همان صنعت می توانند در مورد آسیب های احتمالی کاربران که در محصولات دیگران می بینند، بهتر ارتباط برقرار کنند؟ آژانسها چه نوع الزامات مستندسازی کد را باید پیادهسازی کنند تا از چنین وضعیتی جلوگیری کنند که در آن کد باید در طول چند روز بررسی شود تا مشخص شود قصد انجام آن چیست؟