如何使用PHP完全检测代理

时间:2013-02-22 12:15:50

标签: php proxy fraud-prevention

我希望在有人进入我的网站之前完全检测代理,以防止欺诈行为。

PHP中是否有任何可以检测所有代理的脚本,例如Transparent,Anonymous,High Anonymous,Socks,Tor等?

我有一个代码,但我不确定它是否会过滤所有代理:

$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!");
    }

有人可以帮我创建一个完整的解决方案,可以阻止任何代理流量进入我的网站吗?

1 个答案:

答案 0 :(得分:5)

  

我希望在有人进入我的网站之前完全检测代理,以防止欺诈行为。

这完全没有意义。代理有很多完全合法的用例。此外,恶意代理用户可以删除这些标头,以及他们可能正在使用代理的任何其他指示。

您检测代理用户的唯一真正安全的方法是拥有所有存在的代理IP的列表。

我会这样做,并花时间建立更有用的安全措施。随着时间的推移可能变得有用的是能够轻松阻止麻烦制造者使用的某些IP甚至IP范围。