笔者2013年曾发表过一篇文章《免费代理服务器为何免费?》——文中提及代理服务器之所以免费,是因为其可以轻松浸染用户的上网行为并收集数据。而最新上线的Proxy Checker可以检测代理服务器的安全性。
后来,为了找到那些使用了文章中所述的免费代理服务器,我写了个极简单的脚本(实际就是一个PHP函数),从不同的位置请求获取Javascript文件并检测可修改的内容。
评测方法
如果你并不关心代码,请直接跳至检测结果。
我说这个脚本“极简单”是因为这是个完整函数:
/**************************************************************************/ /* scanProxy function by Christian Haschek christian@haschek.at */ /* It's intended to be used with php5-cli .. don't put it on a web server */ /* */ /* Requests a specific file ($url) via a proxy ($proxy) */ /* if first parameter is set to false it will retrieve */ /* $url without a proxy. CURL extension for PHP is required. */ /* */ /* @param $proxy (string) is the proxy server used (eg 127.0.0.1:8123) */ /* @param $url (string) is the URL of the requested file or site */ /* @param $socks (bool) true: SOCKS proxy, false: HTTP proxy */ /* @param $timeout (int) timeout for the request in seconds */ /* @return (string) the content of requested url */ /**************************************************************************/ function scanProxy($proxy,$url,$socks=true,$timeout=10) { $ch = curl_init($url); $headers["User-Agent"] = "Proxyscanner/1.0"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_HEADER, 0); //we don't need headers in our output curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,$timeout); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return output as string $proxytype = ($socks?CURLPROXY_SOCKS5:CURLPROXY_HTTP); //socks or http proxy? if($proxy) { curl_setopt($ch, CURLOPT_PROXY, $proxy); curl_setopt($ch, CURLOPT_PROXYTYPE, $proxytype); } $out = curl_exec($ch); curl_close($ch); return trim($out); }
你可以用这个函数做各种分析:
·检查代理是否隐藏了你的IP,通过 http://ip.haschek.at 找到你的IP,然后你可以在参考数据中检查是否有与你的IP相同的;
·检查代理是否使用的https隧道传输(一种安全传输协议),如果不是,那可能是服务器拥有者想查看明文,然后从中提取数据;
·检查代理是否修改了静态网页(例如:添加广告)。
分析443个免费代理服务器
我从各种渠道获得了代理服务器的信息,但是我发现Google有通向所有网站的链接
我们需要检测什么
·是否使用了HTTPS?
·是否修改了JS内容?
·是否修改了静态网页?
·是否隐藏了我的IP?
评测结果
现在问题来了:75%的代理服务器是安全的?
仅仅因为一个代理服务器“不积极”地修改你的内容,这并不意味着它就是安全的。使用免费代理服务器的的唯一安全的方法就是如果HTTPS可用,你只访问实施HTTPS的站点即可。
只有21%代理服务器使用了HTTPS。
令人震惊的结果
出乎意料的是,会有如此多的代理禁止HTTPS流量。代理服务器这么做可能是因为他们想让你使用HTTP,这样它就能分析你的流量并窃取你的登录凭证了。
199个代理服务器中只有17个(8.5%)修改JS,他们中大多出都被注入了客户广告。但是其中只有两个是错误信息或者web过滤器警告。
33个代理服务器(16.6%)活跃于修改静态HTML页面并且注入广告。
他们中的大多数在结束标签之前加入了下面这段代码: