Привет, я создаю игру, и я хотел бы узнать, использует ли пользователь прокси. Если они есть, это в основном помещает флаг на их счет. Я могу заставить его сделать флаг и все, но я не совсем уверен, как определить, использует ли пользователь прокси. Я видел, что вы можете использовать заголовки, но я не совсем уверен, что искать и как вы будете проверять, имеет ли пользователь «заголовок» (помимо обычного http_referrer, а что нет).
Любая помощь приветствуется.
редактировать
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 секунд). Есть ли способ использовать этот скрипт, но заставить его работать быстрее?
EDIT 2
Изменен тайм-аут fsockopen с 30 до 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
… и целый ряд других интересных хитов.
РЕДАКТИРОВАТЬ:
AFAIK нет способа обнаружить HTTP-прокси с абсолютной уверенностью или безопасно:
Услуги анонимайзера не добавляют соответствующие заголовки к их запросам – на самом деле они удаляют некоторые из них. Вам необходимо сохранить список самых популярных сервисов анонимайзера и их блоки IP-адресов и обнаружить их таким образом. Есть несколько списков в режиме онлайн, которые вы можете использовать, но они далеки от завершения, особенно если вы считаете, что большинство крупных учреждений (интернет-провайдеров, компаний, университетов и т. Д.) Предоставляют прокси-сервер для своих пользователей. Некоторые даже требуют, чтобы их пользователи использовали их.
Многие HTTP-прокси настроены так, что они просто пересылают запросы без изменения заголовков.
Установки VPN имеют тот же эффект, что и прокси-сервер HTTP, а именно разрешение HTTP-запросов исходить из другого IP-адреса, отличного от того, на котором находится веб-браузер, без его использования.
Любой SSH-сервер может использоваться как прокси-сервер SOCKS его пользователями, что на самом деле невозможно обнаружить, поскольку он не является прокси-сервером HTTP.
Существует много законных HTTP-прокси, которые не доступны для публики. Например есть HTTP прокси-продукты, которые установлены в домашней сети и обеспечить родительский контроль и сомнительного содержания (порнография, фишинг-сайты и т.д.) фильтрации для всей сети.
Какое злоупотребление вы видите, где может быть полезно обнаружение HTTP-прокси?