网站内容劫持 广告(劫持的一些常见问题和解决办法(一))
优采云 发布时间: 2022-01-26 21:14网站内容劫持 广告(劫持的一些常见问题和解决办法(一))
说劫持从了解会话开始。从用户在浏览器中输入 URL(点击书签)开始: 连接到 Internet 时系统分配一个 DNS 服务器地址 / 用户手动设置一个 DNS 地址(例如 8.8.< @k21@ >8)
浏览器查询系统配置的DNS“这个URL对应的IP是什么”
1中的DNS服务器返回“服务器地址为xxxx”或“NXDOMAIN: no such X domain name”
浏览器与3中返回的xxxx的80端口建立TCP连接,连接建立后,浏览器在此连接中发送GET /xxx HTTP/1.1请求页面服务器收到上述GET请求并返回HTTP 200 OK,后面是各种 HTML 内容
s 浏览器页面到指定的(广告)页面。这种中途拦截,篡改DNS响应插入内容的做法,称为“DNS劫持”。
现在这个所谓的iPush(浪费我的i-prefix啊废话!)实际上比DNS劫持要糟糕得多。它主动分析用户的正常网络流量(第5步建立连接后的内容),并插入自己的内容(包括随机页面重定向、插入iframe/javascript页面弹出等)。此时用户实际上已经完成了正常的DNS解析,并与网站建立了TCP会话。但是由于 TCP 本身只是一个管道,而 HTTP 协议是明文的(没有加密),所以在这个 HTTP 会话中,所有节点(路由器网关、过滤服务器等)都可以完全监控(和篡改)发送的内容在里面。这种“中间人”攻击在普通的 HTTP 会话中是完全无法检查和预防的。因为攻击者在TCP流中间插入了一条信息,客户端会认为所有信息都来自原创服务器,无法检查和区分,所以使用这种方法在下层插入一个弹窗广告知乎 页面的右上角。类,用户很可能认为它是 网站 本身的内容。
至于文中提到的“采集用户邮件等信息”,对用户的危害就更严重了:我在知乎没有HTTPS登录的时候给大家演示过,完整的TCP流内容可以用Wireshark重构,包括登录URL、用户名和明文密码等,真是“一目了然”。
网站对于这种令人发指的中间人攻击,操作员无能为力。第一步是全程使用HTTPS,因为解密HTTPS会话需要大量计算,比攻击HTTP流复杂。同时,HTTPS 会要求 SSL 证书签名的域名与被访问 URL 的域名对应,在中间人攻击中替换 SSL。证书往往由浏览器检查并提醒用户(我以前的公司安全主管遇到过 Gmail 的 SSL 证书被中间人替换的情况)。但是由于有不少网站使用了不合适的SSL证书(包括域名不匹配、过期等),
要真正有效解决,正如@陈燕玲所说,只能依靠法律法规来限制电信服务商做不该做的事;或者引入更充分的竞争让用户选择。但……
- 结束 -
下载 知乎 iPhone 客户端: