那次调试网页,反复弹出不属于站点的广告弹窗,才搞懂运营商劫持是什么意思。明明输入的域名没错,网页主体是目标网站,可页面底部凭空多出悬浮广告,点关闭按钮还会新开标签页,换浏览器、清缓存都消不掉。
运营商劫持:第一次排查的无效操作
最先怀疑是电脑中毒,全盘扫描杀毒,插件全部卸载,浏览器重置,广告依旧在。换手机连同一个宽带WiFi打开页面,同样弹出广告。切手机流量访问相同地址,弹窗直接消失。到这一步,就排除了设备和网站本身的问题,只是当时还不敢确定是网络链路层面的改动。
路由器重启,修改WiFi密码,光猫断电静置十分钟,全部试过。网络恢复之后打开网页,广告照旧加载。路由器日志翻了一遍,没有陌生设备接入,本地局域网没有异常,问题不在内网。
换公共DNS,这一步起了变化。
运营商劫持:区分两种劫持现象
一种是DNS劫持,域名解析被改动,输入网址直接跳转到别的页面,网址栏域名都会变。另一种是HTTP内容劫持,域名解析正常,服务器请求通路没问题,数据包在传输途中被改动,往网页代码里插入广告脚本,网址栏显示还是原网站地址,普通用户很难一眼分辨。HTTPS加密页面,这类劫持基本没法注入内容,数据包加密之后,链路中间不能随意篡改返回内容。
测试的时候,HTTP页面会出现广告,切换HTTPS版本访问,悬浮弹窗就不再出现。同一个网站,协议不同,表现完全两样,这就是很直观的判断标记。
| 访问方式 | 劫持表现 | 判断参考 |
|---|---|---|
| HTTP网页 | 页面注入广告、弹窗,302跳转 | 换手机流量访问,广告消失 |
| HTTPS网页 | 几乎无法注入内容 | 地址栏有锁标识,无额外弹窗 |
| 本地局域网 | 设备中毒也会弹窗,不区分协议 | 换网络访问,弹窗依旧存在 |
在工信部电信用户申诉受理平台的说明里,运营商网络在未经用户许可的情况下,擅自修改用户访问的网络请求与返回内容,就属于这类流量干预行为。
那段时间还试过抓包,同一个HTTP请求,宽带返回的响应代码里多了一段广告JS,手机流量抓出来的原始代码干净,没有多余脚本。抓包文件保存下来,这就是可留存的证据。
直接打运营商客服,反馈网页莫名注入广告。客服一开始说是网站自带广告,拿抓包截图对比,对方才登记上报后台核查。处理周期拖得很长,不是一通电话就能立刻关掉。
之后访问站点优先打开HTTPS链接,减少HTTP页面的使用。
那天晚上关电脑,抓包文件留在桌面文件夹里。