今天在搜索某个关键字的时候,不小心中招了一个浏览器广告劫持工具,像我这种万年老司机都中招,可见这种劫持多具有欺骗性了,让我们来复盘看看是怎么回事。
劫持复盘
-
使用搜索引擎搜索某关键字"XXXX"
-
点击搜索结果,页面被跳转到https://robotcaptcha3.info/robot3/index.html?cid=********************
-
页面显示如下内容:
-
如果点击允许,页面会进一步跳转:
这里直接就是一个广告页面了
-
这个跳转到的页面是随机的一个广告页面,根本不是你搜索到的网页(过分了啊,老哥,好歹跳到落地页嘛)
-
这个时候浏览器已经被这个通知广告劫持了,打开其它网页的时候,它会使用浏览器的消息通知功能随机给你推送广告,频率并不会很高(相当机智啊)
浏览器通知广告示例
劫持分析
-
这种方式的劫持非常具有欺骗性,跳转域名带captcha字样,给人感觉第一印象是recaptcha之类的前置机器人识别功能,以为跟随其引导操作能到达落地页
-
后续的广告弹出是随机的,非常具有隐蔽性
-
普通用户对浏览器通知(Web Notifications)这种技术还是相当陌生的,即不知道是什么,也不知道如何处理。
-
目前还只在国外网站有看到这种劫持
-
这种劫持的扩散方式是通过用户访问被劫持(黑掉)的网页来到达的,对受害网站的流量不会100%劫持,最常见的是按百分比去控制,也有按时段、地域去控制的(对于网站管理员所在国家/地区不劫持),所以对于小型网站的管理员而言,有时候很难察觉到网站已经被黑了。
如何解决
解决方式很简单,在浏览器设置里去掉劫持网站的消息通知授权就可以了,这里以Chrome浏览器为例:
-
打开浏览器设置,搜索"网站设置"
-
在网站设置中找到"通知"
-
在"通知"中去除可疑的授权
后续思考
浏览器通知其实是非常实用的功能,有相当多的网站使用了这一功能,最方便的是网站可以在浏览器窗口最小化的情况下,在桌面右下角实时弹出信息,同时,它也和任何便捷功能一样存在被人滥用的问题,在利益的驱动下,这些制作病毒、流氓(广告)软件的人的智慧几乎是无穷的,普通用户在他们的连环组合拳的打击下几乎毫无还手之力。
但是我相信浏览器厂商会在原有的默认授权提示上做出更多安全性的保障,即便目前来说这种广告劫持是完全合法地使用了消息通知功能(用户的确有点击授权),总而言之,好的浏览习惯会帮助用户更安全的上网冲浪,对于浏览器的授权提示(包括消息通知、位置、摄像头、麦克风等),一定要确认好网站方是否可信再进行点击。
技术背景
Web Notifications API 使页面可以发出通知,通知将被显示在页面之外的系统层面上(通常使用操作系统的标准通知机制,但是在不同的平台和浏览器上的表现会有差异)。这个功能使 web 应用可以向用户发送信息,即使应用处于空闲状态。最明显的用例之一是一个网页版电子邮件应用程序,每当用户收到了一封新的电子邮件都需要通知用户,即使用户正在使用另一个应用程序。
Notification.requestPermission( function(status) {
console.log(status); // 仅当值为 "granted" 时显示通知
var n = new Notification("title", {body: "notification body"}); // 显示通知
});
https://developer.mozilla.org/zh-CN/docs/Web/API/notification/Using_Web_Notifications