运营商经常大规模使用HTTP劫持来宣传或插入其他服务(如北京联通的宽带欠费提醒、天津联通的无线终端流量管家)。从开发者的角度来看,运营商到底用的是什么?技术以获得更好的性能?另外,如果使用普通的linux服务器,我怎样才能达到同样的效果?我能想到的不使用特殊硬件的解决方案是DNS劫持或者iptables转发dst到80端口用户流量,然后使用squid作为透明代理修改Http头。IIS7网站监控可以及时防控网站风险,快速准确监控网站是否受到各种劫持攻击,网站在全国范围内是否可以正常打开(检查域名是否被屏蔽),准确的DNS污染检测、网站打开速度检测功能。第一时间知道网站是否被黑、被入侵、被更名、被黑链接。产品精益求精,缺陷零数据提供!可以做以下功能:1.检测网站是否被黑2.检测网站是否被劫持3.检测域名是否被墙4.检测DNS是否被污染5.网站真实全开时间(独家)6.拥有独立的监控后台,24小时定时监控域名官方图:官方地址:IIS7网站监控但是这种方式需要服务器拦截所有80端口流量并进行处理。从理论上讲,性能不是很好。同时,这种方法的另一个缺点是,它会将请求的源地址更改为服务器的地址。有没有更好的解决方案来避免这个问题?正好我的新书《HTTPS原理及最佳实践》的第一章会重点讲解HTTP劫持的原理和检测方法。限于篇幅,我简单回答一下楼主的问题:通用的服务器肯定可以用来劫持,只要能实现路由器或者七层代理的功能,并且能够收发转发数据包实现劫持。当然,处理性能应该还过得去。利用七层(HTTP)代理/反向代理可以实现劫持,可以查看和修改任意HTTP内容。七层代理对性能要求低,劫持策略很灵活,但是有楼主提到的一个问题,修改用户的源IP很容易暴露劫持者所在位置。因此,大多数劫持都是在网络层(IP层)使用类似netfilter的机制,以修改数据包的形式实现的劫持。这种劫持技术实现难度大,性能要求高。还有一种比较粗暴的方式,就像其他答主提到的,提前把被劫持的数据包返回给用户,这样用户返回的正常流量就会被丢弃。但是这种方式比较粗糙,容易引起用户投诉。以上是基本的劫持技术手段,可以修改HTTP、email等多种形式的应用内容,将劫持者的异常内容插入其中。摘自部分书籍提到的内容,常见的劫持目标有以下几种:DNS劫持,又称DNS重定向攻击,是将用户引导至意想不到的网站的行为,主要是通过修改用户的DNS解析结果。比如用户访问www.qq.com,正常的DNS解析IP应该是腾讯网的IP地址(假设是10.1.2.3),但是中介修改了DNS解析结果,给用户返回了一个非-Tencent.comIP(假设为10.2.3.4),则用户将与该非腾讯网站建立连接并产生网络传输。根据中介的劫持意图,DNS劫持一般有以下两种危险后果:1.域名欺骗和转移(域名欺骗)。将用户请求定向到第三方网站。一般此类网站充斥着广告或色情等内容。主要靠广告或软件捆绑盈利。2.钓鱼。钓鱼网站也会将用户引导至第三方网站,但与导流不同的是,此类劫持主要是获取用户的用户名、密码等非常重要的信息。比如银行账户、支付宝账户密码等。所以钓鱼网站常见于金融和购物网站。URL劫持,劫持方式主要有两种:1.302重定向劫持,将用户URL重定向到非目标网站。如果直接劫持用户的目标网站过于明显,因为如果用户无法访问目标网站,会引起大量投诉,最终导致劫持被曝光。所以这种劫持一般都是针对中间页面的劫持,会加上一些过滤条件。例如,用户访问目标网站后,如果点击目标网站的链接,可能会被302重定向劫持。典型的例子就是搜索结果页:2.修改URL参数,比如增加流量URL的频道标识符或页面参数。网页内容篡改是最常见的劫持现象。一般有以下几种情况:1、直接在网页中插入JS(java脚本)。2.在网页中嵌入iframe。这里加入一个中间人(MITM,maninthemiddle)的概念:但是随着通信网络的发展,网络拓扑结构越来越复杂,明文传输过程需要经过很多中间网络节点。如路由器、基站、防火墙、交换机、代理服务器等。不同的网络环境也有不同的中间节点。例如,移动通信网络需要基站接入,WIFI需要AP(接入点,接入点)接入,家庭PC网络需要住宅宽带路由器或交换机接入。如下图所示:图1-4只是为了描述方便,列出了所有常见的中间节点。事实上,并不是每一次信息传输都需要经过以上节点。例如,可能没有交换机或代理服务器。信息经过上述中间节点意味着什么?l如果信息没有加密,中间节点可以直接查看信息。如上一节所述,中介可以直接查看cookies、关键字、网页内容等内容,用户的在线隐私将被充分暴露。l如果信息没有通过一致性检查,中间节点可以直接修改明文信息。归根结底,由于HTTP是明文传输,流量的利润空间巨大,所以流量劫持的现象会越来越严重。那么如何彻底有效的解决流量劫持呢?整个站点是HTTPS。当然,我的书中也提到了如何简单有效地检测你的网站是否被劫持,这里不再赘述。其实原理很简单,因为http协议是明文的,如果流量通过你的设备,你想玩什么就玩什么。主要流氓ISP使用的设备简单粗暴。监听客户发起的http请求,然后直接伪造302重定向,重定向到自己的服务器。因为它的设备必须比客户端实际要访问的服务器更近,所以响应也比正常响应快。浏览器只处理最快的响应,因此客户端被劫持,迟到的真实响应被默默丢弃。
