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:)
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?
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