使用Http代理服务绕开公司上网行为管理/内容过滤(C#开发Http代理服务)
陈粤雄 2010-07-30
在一些大公司通常有上网行为管理,会把一些网址给过滤掉,所以有些网页在公司是打不开的,但是在自己家就能打的开。例如我在公司,就打不开猫扑、天涯等论坛,以及任何有关游戏的网页。如果你的情况跟我相似,希望在工作之余,上一些论坛,或者游戏的网页,那么就请看继续看下面的内容。
首先分析下上网行为管理是怎么过滤掉我们打开的网页的。我猜测了下,估计一是上网行为管理有一套的网址分类方法,直接过滤掉指定的网址,二是自动识别要打开的网页的内容,如果不符合指定策略的就过滤掉。那么针对这两种情况,只要用个代理服务器就很容易绕的过去了。
针对第一冲情况,用普通的代理服务器就可以了。但是第二种情况的话,普通的代理就无能为力了,因为就算用了代理,网页的内容还是要经过上网行为管理的服务器的,不符合策略的话一样会过滤掉。那么,怎么解决这种情况呢,很显然,我们会想到对内容进行加密或者混淆什么的,总之只要把网页的内容变一下,那上网行为管理的服务器就认不出来了。
接下来先说下Http代理服务的原理,然后针对第二种情况,说下解决的思路。
Http代理服务的原理:
Http代理服务的原理很简单,就是客户端在请求Http的时候,不是直接请求指定网址的服务器地址,而是把Http请求发送到代理服务的地址,代理服务监听到请求后,把接收到的Http请求发送到实际地址,然后代理服务接收实际地址发送回来的数据,再转发到产生Http请求的客户端。
IE如何设置代理:
打开"Internet属性->连接->局域网设置",在“代理服务器”一栏里,把“为LAN代用代理服务器”打上勾,设置下面的代理服务器地址及端口,确定。
在IE里面正确设置了代理服务器的话,那么我们就可以访问到上网行为管理系统过滤掉的网址了。可惜,上网行为管理系统不会这么傻,对内容的管理是上网行为管理的基本功能,基本所有的上网行为管理系统都会有的。那么,我们就要变下思路了。
解决方案思路:
最基本的思路就是把发送的Http请求以及Http响应加密/混淆。
我们可以把客户端要访问的Http请求头部加密,发送到代理服务器,代理服务器解密后,发送解密后的Http请求。然后,代理服务器把接收到的网页内容加密后返回到客户端(在普通的浏览器),客户端就无法辨认这些数据了