WP-Optimize否认对性能工具作弊的指控

昨天,我们发表了Gijo Varghese对WP-Optimize的制造商UpdraftPlus的指控《WP-Optimize插件被指欺骗PageSpeed和其他性能测试工具》。Varghese是FlyingProxy(一家竞争公司)的创始人,他认为自己是一个 “性能爱好者”。他指责该插件 “欺骗Pagespeed和其他工具”,当用户通过流行的性能测试工具测试他们的网站时,隐藏JavaScript文件不被加载。该代码为测试工具使用了一组奇怪的混淆名称,这引起了他的怀疑。

Varghese在他的推文中忽略了,当该插件在Minify > JS下的一个设置被设置为延迟JavaScript时,就会发生这种情况。有两个单选按钮设置,但它们令人困惑。

第一个单选按钮允许用户推迟选定的JavaScript文件。它说这些文件将被异步加载(与延迟不一样),然后它还说,如果用户想把脚本排除在页面速度测试之外,应该选择第一个单选按钮。对于用户和测试网站来说,并不清楚脚本将如何加载。排除与推迟是不一样的,所以在这种情况下,设置UI有些误导,应该更加清晰。

WP-Optimize否认对性能工具作弊的指控插图

第二个单选是为那些只是想推迟所有JavaScript的用户准备的。如果选择 “使用JavaScript延缓(如果你需要支持旧的浏览器,请使用此方法)”,它应该完全按照链接中的描述来做。

如果设置了defer属性,就说明脚本是在解析页面的同时下载的,并在页面解析完成后执行。

即使用户界面上说它推迟了所有的文件,WP-Optimize也不会为性能测试网站加载JavaScript。在这第二个选项中,排除测试网站的情况发生了,没有得到用户的许可。如果用户希望这样,他们应该选择前面的单选按钮,并明确指出要排除哪些脚本。

WP-Optimize否认对性能工具作弊的指控插图1

Varghese在他的原始报告中遗漏了一些重要的细节,但它是准确的,因为某些设置对它们的实际作用有误导。他在后续的视频中演示了这一点,其中没有手动输入任何要排除的脚本,并且勾选了第二个单选框。

“他们在为用户提供一个欺骗测试工具的选项,”Varghese说。”而且,使用像Lighthouse的’ighth’和GTmetrix的’tmetr’这样的名字,清楚地表明了他们的目的。

“大多数用户尝试禁用和启用不同的功能,看看哪个功能在测试工具中增加了速度/分数”。

Varghese争辩说,没有必要为测试工具和人类做不同的事情,因为这样会让网站所有者感到困惑。他的指控遗漏了重要的细节,并暗示所有这些都隐藏在代码中。它是针对其中一个设置,但不是另一个。界面暗示你必须手动输入脚本以排除测试,但这也是误导。

WP-Optimize今天发表了对这些指控的公开回应,但没有透露他们完成的代码调查的任何结果。相反,该公司引用了Divi Engine的Peter Wilkinson制作的一段视频,他声称用户必须手动输入脚本,以使测试网站排除它们。

引述威尔金森的结论是:”Gijo Varghese在Twitter上将这个问题引起公众注意时,使用了欺骗手段来推广Flying Pages和Flying Press。

“实际上(根据我的研究)WP-Optimize不会在你安装或最小化你的JavaScript时’欺骗’Pagespeed工具,” Wilkinson说。

“要’欺骗’工具,你需要手动将你想要异步加载的JS文件添加到一个设置中,该设置明确标明’如果你有一个完全独立的脚本或想将脚本排除在页面速度测试之外(PageSpeed Insights,GTMetrix…),请使用此设置'”

事实并非如此。最简单的测试方法是安装该插件,打开 “推迟所有的JavaScript”,然后查看源代码,看看性能工具是否被排除在外。

由于WP-Optimize对这个问题的公开回应没有包括他们的代码调查的内容,我又联系了他们。他们的副领导Venkat Raj无法回答为什么插件中的其他设置会在点击单选按钮后默默地删除性能测试工具的JS。该公司的战略主管Joe Miles分享了他从Venkat Raj那里得到的关于这个问题的最后信息。

“指控中使用的高级设置实际上是很有用的,可以找出必不可少的js/css文件是否真的拖慢了网页。 这个功能在默认情况下是’关闭’的,只有知道自己在做什么的高级用户才能启用。

“如果你有一个完全独立的脚本,或者想把脚本排除在页面速度测试之外(PageSpeed Insights, GTMetrix…),你可以使用这个功能。

“独立的脚本是例如’分析’或’像素’脚本。它们不是网站工作的必要条件。如果你有一个完全独立的样式表,或者想在页面速度测试中排除样式表(PageSpeed Insights, GTMetrix…),请使用此项。

这适用于第一个单选按钮。第二个按钮没有任何迹象表明它将在使用测试工具时关闭所有的脚本 – WP-Optimize的团队似乎也不知道它可以通过点击单选按钮来实现。

迈尔斯无法确认这是否是它的工作原理,或者是一个错误。他也无法解释为什么流行的测试网站的名称在代码中被混淆,但他说原始开发者 “不为我们工作,因为它是从其他地方转用的开放源代码”。

“然而,我们认为这是对虚假指控的转移,重要的是用户界面对设置的用途非常清楚,所以用户不会被欺骗,”迈尔斯说。

WP-Optimize复制代码的插件Fast Velocity Minify(FVM)的作者Raul Peixoto说,他可以确认这段代码是FVM的一部分,但说它没有以同样的方式使用。

FVM上的这些代码的目的与WP Optimize上的完全不同,而且还需要用户通过wp-admin手动启用这个选项(默认是禁用的)。

该代码的目的是有选择地测试新的脚本或插件对性能的影响,并帮助开发人员决定他们是否应该重构、删除或替换沉重的插件或脚本。

这存在于FVM上,用来回答这样的问题。
“我有一个生产网站,我的性能很低。如果这个插件干脆不在这里,但还没有真正从网站上为普通用户删除它,那么性能会如何?”
“如果我可以推迟所有的脚本,或目前与推迟不兼容的特定脚本,在实际为所有人做这种改变之前,性能会是怎样的?”

关于它在FVM上的使用,截至今天上午,在该插件的支持论坛上有一个官方解释。

“Peixoto说:”我想,WP-Optimize雇用的开发人员并不了解这在FVM上做什么,或者在什么设置下做什么,或者,他们可能觉得有必要把它作为一个黑客使用。

“我们还应该仔细记住,在那个时候,还没有公开的网络核心指标,所以使用这样的东西会产生更好的’可测量’结果,从而提供产品优势。”

Piexoto说他 “感到不得不 “在两年前删除这段代码,因为它经常被那些在测试中为客户作弊的开发人员滥用。

快进了一段时间,我意识到有些开发者实际上是在利用这个功能为他们的客户在测试中作弊,所以我觉得不得不在FVM 3(已经是2020年底)做出决定,删除这个功能,当他们的客户开始抱怨他们的分数下降时,遭到了很多愤怒的开发者的抗议。

当时我试图解释,有一个好的分数并不等于有好的网络核心指标,但最终我放弃了,因为有些人更关心的是测试结果而不是实际性能。

在FVM 3发布后,我基本上只是在维护它,并在接到报告时做一些小的错误修复,因为我必须专注于其他事情。我已经删除了那个功能,并修复了3.2.9版本上的几个待修复的bug,并推送了一个更新,所以感谢你把这个问题交给我。

不管是什么原因,UpdraftPlus选择在2020年将这段代码合并到WP-Optimize中,并且正如昨天所报道的那样,从那时起就没有碰过这段代码。

昨天看起来是一个非黑即白的问题,其实是一个更细微的情况。WP-Optimize对FVM代码的实现在用户界面上的记录很差,而且对脚本的加载方式存在误导。它可能导致网站所有者在没有成为高级用户的情况下激活它,而且历史上有很大的滥用可能性。当Varghese发现它时,他以一种煽动性的方式暴露了它,觉得自己肯定发现了错误的行为,因为代码是如此莫名其妙地被混淆了。这使问题变得更加复杂,但也开始了一个更广泛、重要的对话。

用户是否应该有这种轻松的机会(点击两下)来关闭性能测试工具的脚本?同行业的开发者如何更好地交流他们在别人的产品中看到的对用户的潜在危害?各机构应该实施什么样的代码文档要求,以防止出现这样的情况,即需要在几天内对代码进行调查,以找出它的目的是什么?

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容