określ, czy użytkownik korzysta z serwera proxy

Cześć tworzę grę i chciałbym być w stanie stwierdzić, czy użytkownik korzysta z proxy. Jeśli są, to w zasadzie umieszcza flagę na ich koncie. Mogę zrobić flagę i w ogóle, ale nie jestem dokładnie pewien, jak powiedzieć, czy użytkownik używa proxy. Widziałem, że możesz używać nagłówków, ale nie jestem dokładnie pewien, którego szukać i jak sprawdzić, czy użytkownik "ma" nagłówek (poza normalnym http_referrer, a co nie).

Każda pomoc jest bardzo doceniam to.

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');
}

Więc ten kod głównie działa, gdy użytkownik jest proxy szybko się kończy. Ale kiedy nie są, ładowanie trwa wieczność (około 10 sekund). Czy w ogóle można użyć tego skryptu, ale sprawić, by działał szybciej?

EDIT 2

Zmieniono limit czasu na fsockopen z 30 na 1 i działa znacznie szybciej i nadal działa. Dzięki za sugestie wszystkim:)

Author: jefffan24, 2010-12-24

1 answers

Po wyszukaniu w Google php detect http proxies znalazłem:

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

...i sporo innych ciekawych hitów.

EDIT:

AFAIK nie ma możliwości wykrycia proxy HTTP albo z absolutną pewnością, albo bezpiecznie:

  • Usługi Anonimizujące nie dodają odpowiednich nagłówków do swoich żądań - w rzeczywistości usuwają niektóre z nich. Musisz zachować listę najpopularniejszych usług anonimizujących i ich bloków adresów IP i wykryć je w ten sposób. Istnieje kilka list on-line, z których możesz korzystać, ale są one dalekie od kompletności - zwłaszcza jeśli weźmiesz pod uwagę, że większość dużych instytucji (dostawcy Internetu, firmy, uniwersytety itp.) zapewnia serwer proxy dla swoich użytkowników. Niektóre nawet wymagać od swoich użytkowników, aby z nich korzystać.

  • Wiele serwerów proxy HTTP jest skonfigurowanych tak, że po prostu przesyłają żądania bez zmiany nagłówków.

  • Instalacje VPN mają taki sam efekt jak proxy HTTP - a mianowicie pozwalają żądaniom HTTP pochodzić z innego adresu IP niż adres komputera, na którym znajduje się przeglądarka internetowa - bez bycia nim.

  • Każdy serwer SSH może być używany przez swoich użytkowników jako proxy SOCKS, co nie jest tak naprawdę wykrywalne, ponieważ jest nie jest to proxy HTTP.

  • Istnieje wiele legalnych proxy HTTP, które nie są publicznie dostępne. Na przykład istnieją produkty proxy HTTP, które są zainstalowane w sieci domowej i zapewniają kontrolę rodzicielską oraz filtrowanie wątpliwych treści (Pornografia, witryny phishingowe itp.) dla całej sieci.

Jakiego rodzaju nadużycie widzisz, gdzie wykrywanie proxy HTTP może być przydatne?

 7
Author: thkala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-24 17:15:51