网站崩溃,甩锅广告拦截程序:数字世界中的一场没有硝烟的战争
当您使用广告拦截程序时,时常会遇到“广告拦截墙”或弹出窗口要求关闭广告拦截程序以访问内容。虽然大家对这类广告拦截墙的看法不一,有些设计还算合理,有些则不然,但它们的意图通常都很直接:这些网站明确表示不喜欢或不接受广告拦截程序,并希望用户关闭它。然而,最近出现了一种新的、令人担忧的趋势:某些反广告拦截的弹出窗口不仅限制访问,还把网站发生崩溃的责任甩给广告拦截程序。在本文中,我们将详细探讨这一现象,分析这些欺骗性信息背后的策略,以及它们对用户信任和网站信誉的影响。
在浏览智能电视评测时,我访问了一个名为 FlatpanelsHD 的网站。当时我正开着Windows 版 AdGuard 应用程序来拦截广告和其他干扰,结果一打开网站就跳出了一个弹出窗口。它声称网站无法正常加载,原因是「html-load.com 崩溃了」,催促我允许 html-load.com
以继续访问网页。
这条信息让我感到意外,尤其是因为网站似乎在后台基本正常加载。不过,这种情况并没有持续太久。
几秒钟后,页面不再显示正常内容,而是变成了一堆杂乱的字符串,其中一些还带有超链接。
点击「确定」后,又弹出了一个窗口,进一步解释情况。上面写着:“由于不良过滤规则,页面无法加载。”底部的小字还补充道:“用 html-load.com 域名以加载 HTML、CSS 和图片等网页资源。如果该域名被拦截,可能会导致网站加载错误。”
(英文原文:“The page could not be loaded due to incorrect/bad filtering rule(s) of ad blocker.” “The html-load.com domain is used for loading essential web resources such as HTML, CSS, and images. If this domain is blocked, errors may occur in website loading.” )
经过一番调查,我们在 AdGuard 发现有几十个网站采用了类似的策略,通过弹出窗口将布局问题归咎于广告拦截程序。
以下是另一个表现出相同行为的网站截图。
关键在于,事实被严重歪曲了!广告拦截程序并没有破坏这些网站,而是所谓的广告恢复工具让它们看起来像是崩溃了。虽然广告拦截程序有时确实可能因为错误或过时的过滤规则在拦截广告后扰乱页面布局,但这种情况非常罕见,且几乎不可能导致布局完全崩溃。
在深入探讨为什么我们认为上述信息具有欺骗性之前,我们先来看看一些我们之前遇到的类似的例子。
去年8月,我们发现俄罗斯知名电子邮件服务和门户网站 Mail.ru 使用了类似的策略。突然之间,使用广告拦截程序的用户无法看到新闻板块了。经过调查,我们发现 Mail.ru 在页面上添加了代码,一旦检测到广告拦截程序,就会隐藏新闻部分。之后,Mail.ru 还向用户发送通知,将某些元素消失的责任甩给广告拦截程序。
从我们最近的观察来看,此类歪曲事实,攻击广告拦截程序信誉的趋势正在加速蔓延,并逐渐全球化。
经典广告拦截墙:有什么不同?
这种强迫用户关闭广告拦截软件的方式算是老生常谈了。用户需要关闭广告拦截程序才能访问内容的理念并不新鲜;很多网站早就采用了广告拦截墙或反广告拦截弹出窗口来应对访客。这些弹出窗口通常会要求用户关闭广告拦截程序,或将网站加入广告拦截程序的白名单。
在这些“经典”广告拦截墙的情况下,网站方会直接表明他们对广告拦截程序的不满在于其使用本身,而不是它们如何破坏网站布局。大家对“经典”广告拦截墙的看法可能不同,但至少网站方是坦率的。关于 AdGuard 的政策,我们认为如果广告拦截程序检测信息提供合理的价值交换,且不会危及用户隐私或安全,那么应该允许它们。
而我们本文讨论的新方法则完全不同。接下来,让我们深入探讨其背后的运作机
第一种方法:依赖外部样式
我们发现,这其实是广告恢复工具在搞鬼。这些工具通过多种方式运作,通常是为了绕过广告拦截程序以显示广告或挽回收入损失。
一种常见的方法是广告恢复工具从外部加载样式。外部样式是 CSS(英文:Cascading Style Sheets)文件,定义了网站的外观和布局,从排版到颜色的一切。
如果网站依赖某个域名的外部样式,广告恢复工具会从外部加载这些样式。如果该域名被广告拦截程序拦截,网站的布局就会崩溃。为了解决这个问题并保持布局,AdGuard 有时会在拦截脚本后手动加载样式。这种方法可以确保网站在广告被过滤时仍然保持视觉上的完整性。
不过,这在 iOS 或浏览器扩展中可能会变得复杂。
第二种方法:误导性警告信息
还有第二种方法。
许多网站,包括 FlatpanelsHD,并不依赖外部样式;即使广告被拦截,它们的布局也不会受到影响。然而,如果网站检测到 html-load.com
(在我们的案例中)的脚本没有加载,它就会触发一个误导性的警告信息。点击「确定」后,会出现一个更大的警告,里面充斥着关于 CSS 和图片的复杂术语。实际上,问题并不是广告拦截程序引起的,而是广告恢复工具通过特殊脚本删除了布局。
当广告恢复工具检测到某些请求被拦截、某些元素被隐藏或广告加载失败时,它会通过类似以下的脚本删除所有带有样式和链接标签的元素:
document.querySelectorAll('link,style').forEach((e)=>e.remove())
这种策略会误导用户,让他们以为是广告拦截程序导致了问题。实际上,网站是在试图将责任从自己使用的广告恢复工具上转移,甩锅给广告拦截程序,歪曲事实。
结论
我们在这里揭示了一个事实:一些网站歪曲了它们为何在广告拦截程序启用时无法打开的原因。它们通过误导性的信息,将加载问题归咎于广告拦截程序。在我们看来,这种不道德的行为只会让它们显得更加不可信。当网站从用户访问的那一刻起就开始欺骗用户时,它们可能会损害自己的声誉并失去用户的信任。
这种误导不仅损害了用户与广告拦截程序之间的关系,也破坏了用户与网站之间的信任,因为它们通过错误信息操纵用户行为,滥用用户的信任。