众所周知,我国的一群奇葩的 ISP,为了赚点儿钱,会偷偷的给用户推送“免费广告”。用的是 DNS 劫持和 http 劫持。DNS 劫持可用公用 dns 干掉,但 http 劫持就很难防治。不过,后者是基于抢答机制运行的。
原理是一个旁路发送的被篡改数据包要比正常数据包先到,于是,后到的正常的数据包就被判定为伪应答了。
但是正常数据包和劫持包内容非常相似,我这里只是正常数据包被套在了 iframe 里。那机会就来了,可以把包缓存一段时间,比较这些包的内容,如果一个包比另一个包先到,并且这个包和另一个包内容很相似那就 drop 掉先到的。
这样就可以了。
但什么可以实现缓存数据包并且提供比较功能呢?