Хостинг. Определени пользователей которые использую Proxy

onyx1337
8 років
0

Здравствуйте у меня есть цель определять всех пользователей которые используют Proxy на сайте.

Нашёл такую проверку по заголовкам , но она не помогает. Так как Apache не пишет эти заголовки в $_SERVER.

$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!");
}


Я проверял на плагине для firefox - anonymox.
У нас пишутся только HTTP_X_REAL_IP и REMOTE_ADDR , при том они идентичные в обоих случаях (как с использованием proxy так и без).
Сканирование портов тоже пробовал , но этот вариант как то через чур.

Может есть какие то другие варианты ?

Alik
8 років
0

>Сканирование портов тоже пробовал , но этот вариант как то через чур.
Это плохая идея. Во-первых, на многих хостингах сканирование запрещено вообще и может стать причиной отключения Вашего аккаунта; во-вторых, сканирование портов будет задерживать загрузку страниц. Я уже не говорю о том, что это не совсем верный способ. К примеру, прокси-сервера иногда используют порт 8080. У меня на этом порту работает HTTP-сервер, из-за чего сканирование портов покажет, что данный порт открыт и я, вероятно, использую прокси (а это не так).

>Я проверял на плагине для firefox - anonymox.
Не знаю, что это за плагин такой, но проверять следует при помощи указания IP-адреса и порта прокси-сервера в настройках браузера. При этом прокси-сервера делятся на категории по уровню анонимности. Если посетитель использует сервер с высокой анонимностью (который не отдает реальный адрес клиента и не передает сведений об использовании прокси), то Вы никак не определите, что используется прокси (хороший пример ― Tor). Через заголовки, которые Вы указали, отдают IP-адреса клиента только прокси-сервера с низким уровнем анонимности, в ином случае заголовков не будет, либо они будут пустыми.

После определения реального IP-адреса через заголовок, кстати, следует еще и проверить его на принадлежность к частным сетям, так как иногда компьютеры (например, в некоторых корпоративных сетях) подключены к сети Интернет через прокси и тогда вместо реального IP-адреса Вы получите IP-адрес внутренний, который Вам все-равно ничего не даст.
Под частными сетями я имею в виду сети 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 для IPv4 и fc00::/7 для IPv6.

Тема закрита.