对付电信 HTTP 广告劫持

2015-01-27 12:39:04 +08:00
 albertjin

从网络搜索,电信广告劫持一般用旁路插入,而不是路由插入。这种一般是电信机房交换机的局域网进行的,可以抓包,可以伪造包。那么广告劫持伪造数据包插入的时间是,

  1. 客户端的第一个包之后
  2. 服务器发出第一个包之前

如果触发广告劫持,真正的服务器可能会被断开链接,所以解决方法有两个 ,

  1. 避开触发条件
  2. 如果触发了,那么丢弃当前连接,重新连服务器

避开当然是首选。测试下来发现,我这边电信劫持触发条件可能就是HTTP头的 Host 包含某些网站域名。如果发送HTTP请求的时候,不要一股脑发出去,第一个数据包只发10个字节,等200-300ms后再发剩下的。等待时间主要是确保这10个字节已经按一个包发出去了,而不是在系统缓存可能会跟后续的数据合并。

我现在的实现是这样的。在linux路由器上 (我的是华硕的 RT-AC87U),用 iptables PREROUTING 的功能对80端口的请求转发到程序进行处理。这个方法跟 REDSOCKS 的透明代理一样。

现在这个方法用下来一天,只出现过一次劫持 (本来分分钟会见到,忍无可忍才要研究这个),调节第二个发送延迟到300ms就再也没出现过了。

也许还有更高效的方法,懂的来说说哦。

4080 次点击
所在节点    宽带症候群
6 条回复
invite
2015-01-27 12:51:49 +08:00
分分钟会见到?
不是吧,那不是要劫持循环了?
tiankwx
2015-01-27 13:33:24 +08:00
我遭遇过铁通的劫持,每个网站的某一个JS文件都会被他们转发一次,打开京东,百度什么的,刷新半天都不可能打开,恶心死我了,后来查到,在“本地安全策略”-“IP安全策略,在本地计算机”里可以限制IP,我用chrome的开发者工具跟踪了好久,锁定几个域名与IP,他们或加入IP安全策略或加入host文件,终于清净了~~~

刚才发到另一个贴子了,有这里在贴一下~~
albertjin
2015-01-27 14:36:31 +08:00
@invite 就是比较频繁的意思啊
albertjin
2015-01-27 14:40:57 +08:00
@tiankwx 如果按IP地址触发劫持,这没办法避开了。只有重连了,在路由器做,可以做到浏览器没有察觉
benbob
2015-01-27 15:53:29 +08:00
这个会影响传输响应速度的喔,多了一道工序
albertjin
2015-01-27 16:18:31 +08:00
@benbob 几毫秒对于人类来说太短了。如果这个机制部署在带宽有几个G的交换机是个问题,家里用用影响感觉不出来。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/165808

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX