Подтвердить что ты не робот

Определить, использует ли пользователь прокси-сервер

Привет, я создаю игру, и я хотел бы узнать, использует ли пользователь прокси. Если они есть, это в основном помещает флаг на их счет. Я могу заставить его сделать флаг и все, но я не совсем уверен, как определить, использует ли пользователь прокси. Я видел, что вы можете использовать заголовки, но я не совсем уверен, что искать и как вы будете проверять, имеет ли пользователь "заголовок" (помимо обычного http_referrer, а что нет).

Любая помощь очень ценится.

Edit

if ( $_SERVER['HTTP_X_FORWARDED_FOR']
|| $_SERVER['HTTP_X_FORWARDED']
|| $_SERVER['HTTP_FORWARDED_FOR']
|| $_SERVER['HTTP_CLIENT_IP']
|| $_SERVER['HTTP_VIA']
|| in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
|| @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30))
{
     exit('Proxy detected');
}

Таким образом, этот код работает в основном, когда пользователь является прокси-сервером, он быстро выходит. Но когда это не так, требуется навсегда загрузить (около 10 секунд). Нужно ли использовать этот script, но сделать это быстрее?

РЕДАКТИРОВАТЬ 2

Изменен тайм-аут в fsockopen с 30 на 1, и он работает намного быстрее и все еще работает. Спасибо за все предложения:)

4b9b3361

Ответ 1

После поиска Google для php detect http proxies я придумал следующее:

http://forums.digitalpoint.com/showthread.php?t=58964

http://forums.digitalpoint.com/showthread.php?t=365467

http://www.roscripts.com/PHP_Proxy_Detector-75.html

... и целый ряд других интересных хитов.

EDIT:

AFAIK нет способа обнаружить HTTP-прокси с абсолютной уверенностью или безопасно:

  • Услуги анонимайзера не добавляют соответствующие заголовки к их запросам - на самом деле они удаляют некоторые из них. Вам необходимо сохранить список самых популярных сервисов анонимайзера и их блоки IP-адресов и обнаружить их таким образом. Есть несколько списков в режиме онлайн, которые вы можете использовать, но они далеки от завершения, особенно если вы считаете, что большинство крупных учреждений (интернет-провайдеров, компаний, университетов и т.д.) Предоставляют прокси-сервер для своих пользователей. Некоторые даже требуют, чтобы их пользователи использовали их.

  • Многие HTTP-прокси настроены так, что они просто пересылают запросы без изменения заголовков.

  • Установки VPN имеют тот же эффект, что и прокси-сервер HTTP, а именно разрешение HTTP-запросов исходить из другого IP-адреса, кроме того, что у компьютера, на котором находится веб-браузер, не являясь одним из них.

  • Любой SSH-сервер может использоваться как прокси-сервер SOCKS его пользователями, что на самом деле невозможно обнаружить, поскольку он не является прокси-сервером HTTP.

  • Существует много законных HTTP-прокси, которые не доступны для публики. Например есть HTTP прокси-продукты, которые установлены в домашней сети и обеспечить родительский контроль и сомнительного содержания (порнография, фишинг-сайты и т.д.) фильтрации для всей сети.

Какое злоупотребление вы видите, где может быть полезно обнаружение HTTP-прокси?