AI走红后,浏览器又活了过来。由于Web的高效、便捷,一众AI开发者纷纷选择以网页的形式分发他们的产品。随着浏览器重新起势,它又一次成为了灰产的目标。相信不少朋友在使用浏览器时,经常会发现在右下角或右上角频繁弹出各类广告。

这是因为某些流氓网站向浏览器申请通知权限,于是浏览器询问你是否允许,而网站则会要求你点击允许,否则将不提供服务,于是在点击允许后,网站就获取了通知权限。如此一来,即使关闭了相关网页,这些流氓网站也会在后台给你弹广告。
为了改善用户的上网冲浪体验,全球最大的浏览器厂商谷歌出手了。针对网站滥用推送通知,谷歌方面改进了防御机制,现在被Chrome判定为滥用浏览器通知的网站,在通知发送数量上会被限制为每分钟1000条消息,超过阈值后,网站将收到HTTP 429响应,也就是浏览器将限制网站流量。
相信不少人看到每分钟1000条消息,会认为谷歌在玩形式主义。实际上,谷歌限制的是网站通过FCM跨平台消息推送服务向该网站服务的所有用户推送消息。比如,一个网站同时有100名访客,在新规落地后,每位访客平均每分钟就最多只能收到10条通知。

事实上,谷歌针对浏览器通知的改良不止于此。早在2023年,他们就为Chrome引入了“安全检查”(Safety Check)功能,一旦某个网站发送过多的通知,且用户没有参与互动的情况下,Chrome就会自动跳出“发现某网站推送大量通知”的警告。随后在2024年,谷歌又为Chrome增加了新的选项,让用户可以一键退订不想接收的网站通知。
那么问题就来了,谷歌为什么会盯着浏览器通知不放?其实这是因为除了滥用通知降低用户体验外,浏览器通知一直是恶意网页的重要入口。
不同于手机系统的通知,浏览器的“通知权限”是另一种东西。当你允许某个网站发送通知时,网站会通过JavaScript代码调用一个叫Notification.requestPermission()的东西,浏览器也会向推送服务(谷歌FCM、苹果APNs)注册唯一的端点,同时生成一对公钥/私钥用于消息加密。
从某种意义上来说,在用户点击允许通知的那一刻,就向相关网站发送了你的“电话号码”,即便后来从通讯录中删除了这个网站(关闭页面),它依然能通过电话号码给你打骚扰电话。而网站之所以能做到这一点,显然谷歌需要承担主要责任,因为他们设计的Service Worker让Web开发者可以影响用户的离线体验。

Service Worker是浏览器在后台独立于网页运行的脚本,即便用户将浏览器关闭,它依然能在后台活跃,并定期向网站服务器发送请求、拉取内容、触发通知、执行跟踪脚本、甚至是上传你的设备信息。
基于Service Worker,只要用户点过允许通知,哪怕网页被关闭,浏览器仍可能会不断出现“账号异常”“有新消息”等内容,黑灰产只要将通知页面的链接更换,就可以轻松将用户引入钓鱼页面。
当然,这类网络钓鱼确实防不胜防,但效率并不高,用户中招的概率也比较小。真正让谷歌无法忍受的,是浏览器通知被滥用导致用户的设备变卡、续航能力降低。因为网站滥用浏览器通知必然会导致Service Worker在后台持续运作,而它的每一次联网都会唤醒设备的通信模块和CPU。

许多用户在手机莫名其妙出现耗电变快、流量消耗提升的情况时,打开“应用耗电排行”往往就会发现,浏览器占据了电量消耗的一半以上,可自己明明没有使用浏览器,其实这就是有网站在滥用通知导致你的设备资源被白白浪费。
简而言之,清空浏览记录、关掉页面并不代表万事大吉,类似浏览器通知的东西也会成为暗藏的杀机。然而浏览器通知、Service Worker又是Chrome作为现代浏览器的基石,谷歌显然也不能一刀切。所以他们现在的做法改成了“流量控制”,不是不让网站发通知,而是让发通知的意义下降。如果网站一分钟只能向用户发送不到一条通知,这个功能也就名存实亡了。
