2013-06-02 67 views
2

我知道這個問題已被問了幾次,但我找不到解決方案!我擁有一個交友網站,並通過代理人註冊(我假設)併發送垃圾郵件,並創建假帳戶。檢測用戶是否位於代理服務器後

我該如何檢測用戶是否落後於像Vtunnel,Hidemyass,TOR等代理。我知道沒有保證的方式,但pof.com(大量的魚)等網站具有出色的代理檢測。

我只需要開始某處,即使我只能檢測到最流行的代理站點。

+0

檢查DNS阻止列表。 –

+0

爲什麼不把視覺/音頻CAPTCHA添加到您的網站?如果垃圾郵件發送者想要使用自動方法註冊,這會讓生活變得困難。 – halfer

+0

我使用的電子郵件驗證工作正常,但我可以看到使用Google Analytics(分析),我從尼日利亞,塞內加爾等地獲得了很多點擊量,並且99.9%的時間他們使用了被盜圖像。我現在只允許用戶註冊,如果他們來自選定的國家..這就是爲什麼我需要檢測他們是否使用代理 – hdlmsa

回答

3

除非代理使用特殊標題,如X-Forwarded-For,否則不能將其與普通用戶區分開來。由於那些'黑'代理人並不那麼天真(他們的目的是爲了保護他們的用戶,請記住),您唯一的選擇就是IP黑名單 - 就像Project Honeypot提供的黑名單一樣。

+0

謝謝raina77ow。發現這個,它似乎工作正常。 http://snipplr.com/view/64564/ – hdlmsa

0

約會網站和依賴用戶生成內容的類似網站將永遠面臨這個問題。一個簡單的檢查就是測試標題的任何可能表示代理的東西。這可能會導致誤報的一些移動連接:

$proxy_headers = array(
     'HTTP_VIA', 
     'HTTP_X_FORWARDED_FOR', 
     'HTTP_FORWARDED_FOR', 
     'HTTP_X_FORWARDED', 
     'HTTP_FORWARDED', 
     'HTTP_CLIENT_IP', 
     'HTTP_FORWARDED_FOR_IP', 
     'VIA', 
     'X_FORWARDED_FOR', 
     'FORWARDED_FOR', 
     'X_FORWARDED', 
     'FORWARDED', 
     'CLIENT_IP', 
     'FORWARDED_FOR_IP', 
     'HTTP_PROXY_CONNECTION' 
    ); 
    foreach($proxy_headers as $x){ 
     if (isset($_SERVER[$x])) die("You are using a proxy!"); 
    } 

這隻會趕上最低質量的代理。匿名和開放式代理將總是迴避這些測試,因此您可以在那裏檢查DNS黑名單,如project honeypot,儘管這樣做仍然會在保護上留下空白。

如果沒有建立自己的詳細系統,阻止這些欺詐賬戶的最好方法是使用第三方服務,例如:FraudLabs,MaxMind或IPQualityScore。其中一些確實提供了每月查詢的免費配額。