检测用户是否在代理服务器后面

时间:2013-06-02 20:19:46

标签: php proxy

我知道这个问题已被问过几次,但我找不到解决办法!我拥有一个约会网站,并且与通过代理注册的人(我假设)以及向我的用户发送垃圾邮件并创建虚假帐户存在问题。

我如何检测用户是否落后于Vtunnel,Hidemyass,TOR等代理服务器。我知道没有保证的方式,但像pof.com这样的网站(很多鱼)都有出色的代理检测功能。

我只需要从某个地方开始......即使我能够检测到最受欢迎的代理网站。

4 个答案:

答案 0 :(得分:3)

除非代理使用特殊标头,例如X-Forwarded-For,否则您无法将其与普通用户区分开来。由于那些“黑色”代理不是那么天真(他们的目的是保护用户,请记住),您唯一的选择是IP黑名单 - 就像Project Honeypot提供的那样。

答案 1 :(得分: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。其中一些确实提供每月查找的免费配额。

答案 2 :(得分:0)

这是一个老问题。然而,在过去几年中,VPN检测有了重大发展,可能有助于解决这个问题。在地理定位服务提供商从IP地址使用中收集足够的数据后,可以使用IP地址范围来检测VPN提供商。

一个例子是使用https://github.com/ip2location/ip2proxy-php这样的库来查询商业或免费的IP2Proxy数据库。

答案 3 :(得分:0)

您应该查看IPDetector,它是一个API,在其数据库中包含数百万个IP地址,可让您检测IP是否良好(托管/ VPN /代理...)