HTTP请求拦截技术
在这里,我们采用我们熟悉的C#来实现,C#下有一个完整的WEB DEBUGGER(含代理服务器方式实现的HTTP请求拦截与篡改功能)的实现--Fiddler,Fiddler代理服务器的设置是一个免费软件,所以并没有对源码进行混淆和加密,反编译后的代码可读性也很好。我们后面的所有代码,主要就是参考他的代码来实现,当然他实现的功能非常强大,我们仅仅是演示一下HTTP请求与拦截技术的实现,所以没有必要完整的去模拟它,故而我们模拟的原则是,手动的一个类一个类一个方法一个方法的进行模拟,在模拟的过程中能简化的尽量简化,有些思路不太清楚,或者的确是重复造轮子的部分,就直接使用他的代码,以后如果有时间,再对其源码进行一次详细的分析与研究,这次有些部分我们就不再深究了。
首先,我们来实现一个代理服务器,完成HTTP请求的拦截                     
先来看一看实现后的样子,这样有助于理解代码
编译后的程序,我拷贝了一份放在了附录的根目录下的Build文件夹里
build文件夹里到这个双击启动需要 framework 4.0 没有的到微软下载。
启动后如图所示:
这时候,我们打开浏览器,随便CHROME,FIREFOX还是IE,然后输入  training.zhunxin 回车(Enter)
看一下我们的主界面,没有任何反应,这是正常的,因为我们还没有设置代理服务器。 :
任何浏览器,都有设置代理服务器的地方,鉴于天朝 IE的使用率,这里讲IE里的操作步骤。
打开IE--工具--Internet选项--连接--局域网设置。
勾上(跳过本地地址的代理服务器不要勾选),然后点高级。
依照上图进行设置。
HTTPSFTP等不要设置(本代理服务器未对这两种协议进行处理),IP127.0.0.1 表示代
理服务器是在本机,监听端口设成8888,目前代码里写死了。   
IE里设置完后,我们会发现其它浏览器也自动开始使用代理服务器了,这是因为设置代理服务器是系统的功能,每个浏览器打开的都是同一个设置代理服务器的程序
看到这里,大家是不是发现了什么问题。我们不是以后每次要拦截的时候,都要手动设置一次代理服务器吧,-_-!!! ,当然,这是不可能的,后面我们将在篡改一节的开始,就实现一个自动设置代理服务器的功能,这样,当我们的代理服务器启动的时候,就自动将本机的代理服务器设置成自己,退出的时候,再恢复成原样,这样就不再需要向上面一样手动设置了。
OKAY , 一切就绪了,这时候,再次在浏览器里输入网址:training.zhunxin
看下主界面:
看左边,会话已经被监听到了。我们点第一栏的编号为1的会话,界面如下:
看右边,先看上面的文本框,这里显示出了HTTP请求的头信息,再看下面的文本框,这里也显示出了HTTP响应的头信息。
从这两张图里我们可以清楚看到,所有的请求和响应信息都已经被我们监听到了。
再看一下浏览器,网页也正常的打开了,速度也不是很慢,看来,我们的代理服务器算是正
常的运转起来了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。