筆者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頁面并且注入廣告。
他們中的大多數在結束標簽之前加入了下面這段代碼: