网站内容劫持 广告(劫持的一些常见问题和解决办法(一))
优采云 发布时间: 2021-12-06 20:16网站内容劫持 广告(劫持的一些常见问题和解决办法(一))
说起劫持,首先要理解对话。从用户在浏览器中输入网址开始(点击书签):系统在连接互联网时分配一个DNS服务器地址/用户手动设置一个DNS地址(如8.< @8.8.8)
浏览器查询系统配置的DNS“这个URL对应的IP是什么?”
1中的DNS服务器返回“Server address is xxxx”或“NXDOMAIN: No such X domain name”
浏览器与3中返回的xxxx的80端口建立TCP连接,建立连接后,浏览器在该连接中发送GET /xxx HTTP/1.1请求。页面服务器收到上述GET请求,返回HTTP 200 OK。各种 HTML 内容如下
传统的所谓DNS劫持是指当用户为自己的系统设置DNS服务器(可能是ISP分配的,也可能是手动设置8.8.8.8.@ > 等)请求某个网站 IP 地址。如果名称错误无法解析,标准DNS协议规定应发送NXDOMAIN错误信息(上述第3步),Telecom可以(直接,如果用户使用自动分配的Telecom DNS;或者先拦截NXDOMAIN来自远程服务器的消息,如果用户手动设置了其他服务器),发送“正常”响应并返回错误地址给用户(“IP为123.123.213.213,其实就是这个IP地址不对,比如常见的114网址导航等),重定向用户' s 浏览器页面到指定(广告)页面。这种中途拦截篡改DNS响应插入内容的做法被称为“DNS劫持”。
现在这个所谓的iPush(浪费我的i-prefix啊垃圾!)其实比DNS劫持还厉害。它主动分析用户的正常网络流量(步骤5建立连接后的内容),插入自己的内容(包括随机页面重定向、插入iframe/javascript页面弹出窗口等)。此时,用户实际上已经完成了正常的DNS解析,并与网站建立了TCP会话。但是因为TCP本身只是一个管道,而HTTP协议是明文的(没有加密),在这个HTTP会话中,所有节点(路由器、网关、过滤服务器等)都可以完全监控(和篡改)发送的内容在里面。这种“中间人”攻击在正常的 HTTP 会话中是完全无法检查和预防的。由于攻击者在 TCP 流中间插入了一条信息,客户端会认为所有信息都来自原创服务器,无法检查和区分。因此,该方法用于在知乎页面的右下角插入弹出广告。用户可能认为是网站本身的内容。
至于文中提到的“采集用户邮箱等信息”,其实对用户危害更大:我在知乎没有HTTPS登录的情况下给别人做过这个demo,Wireshark可以重构完整的TCP流内容。包括登录网址、用户名和明文密码等,真是“一目了然”。
网站 对于这种无耻的中间人攻击,运营商无能为力。在整个过程中使用HTTPS是第一步,因为首先解密HTTPS会话需要更大的计算量,这比攻击HTTP流更复杂;同时HTTPS要求SSL证书签名的域名与访问的URL的域名对应,被中间人攻击代替。证书经常被浏览器检出并警告用户(我公司安全的老大曾经遇到过Gmail的SSL证书被中介替换的情况)。但是由于使用不合适的SSL证书的网站太多(包括域名不匹配、过期等),
真的要一个有效的解决方案,还是如@陈延领所说,只能靠立法和监管来限制电信服务商做不该做的事情;或者引入更充分的竞争让用户选择。但……
- 超过 -
下载知乎 iPhone 客户端: