笔记-HTTP代理

笔记-HTTP代理

 

1.      基本原理

所谓代理,一个重要的目的是身份伪装,让被访问端无法正辨识访问者的身份。

那么下一个问题是服务器从哪些信息上来识别访问端的身份。

以php http服务器为例:

REMOTE_ADDR:访问客户端的IP地址

HTTP_VIA:如果有该条信息,就证明您使用了代理服务器,代理服务器的地址就是后面的数值。

HTTP_X_FORWARDED_FO:如果有该条信息,也证明了您使用了代理服务器代理服务器的地址就是后面的数值。

HTTP_ACCEPT_LANGUAGE:您浏览器所使用的语言集

HTTP_USER_AGENT:对大多数浏览器而言,这个值一般是Mozilla.可能还会包括浏览器的类型和版本号以及操作系统信息。

HTTP_HOST:网页服务器名称

1.1.    代理种类

代理有不同的级别,从无伪装到完全伪装。

使用不同种类代理服务器,上面的信息会有所不同:

  1. 没有使用代理服务器:

REMOTE_ADDR=您的IP

HTTP_VIA=没数值或不显示

HTTP_X_FORWARDED_FOR=没数值或不显示

  1. 透明代理服务器:TransparentProxies

REMOTE_ADDR=代理服务器IP

HTTP_VIA=代理服务器IP

HTTP_X_FORWARDED_FOR=您的真实IP

这类代理服务器还是将访问信息转发给访问对象,无法隐藏真实身份。

  1. 普通匿名代理服务器的情况:AnonymousProxies

REMOTE_ADDR=代理服务器IP

HTTP_VIA=代理服务器IP

HTTP_X_FORWARDED_FOR=代理服务器IP

隐藏了真实IP,但是向访问对象透露了使用代理服务器访问。

  1. 欺骗性代理:DistortingProxies

REMOTE_ADDR=代理服务器IP

HTTP_VIA=代理服务器IP

HTTP_X_FORWARDED_FOR=随机的IP

告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

  1. 高匿名代理:HighAnonymityProxies(Eliteproxies)

REMOTE_ADDR=代理服务器IP

HTTP_VIA=没数值或不显示

HTTP_X_FORWARDED_FOR=没数值或不显示

完全用代理服务器的信息替代了所有信息,就象是完全使用那台代理服务器直接访问对象。

 

2.      代理识别方法

代理识别可以从两个角度来考虑,首先是从客户端发过来的数据包头中去提取信息并验证身份,不过这种方式容易破解;第二种则是反向探测客户端,毕竟代理终归是服务器,其特征与个人终端有很大的不同。

下面列出了常见的代理识别方法:

  1. 反向探测技术:扫描IP是不是开通了80,8080等代理服务器经常开通的端口,一个普通的用户IP不太可能开通如上的端口;
  2. HTTP头部的X_Forward_For:开通了HTTP代理的IP可以通过此法来识别是不是代理,如果带有XFF信息,说明该IP是代理IP无疑;
  3. Keep-alive报文:如果带有Proxy-Connection的Keep-alive报文,号位疑问该IP是代理IP;
  4. 查看同一来访IP端口:如果一个IP中有的端口大于10000,那么该IP大多也存在问题。
  5. 其它信息,还有浏览器版本,操作系统版本,使用语言,COOKIE,机器名,登录用户名等等,如果IP一换再换,其他信息却从未变过,也是代理了。
posted @ 2018-08-22 10:22  木林森__𣛧  阅读(189)  评论(0编辑  收藏  举报