Задать вопрос

Как определить, что у пользователя включен vpn?

Добрый день! Некоторые посетители сайта заходят с включенным vpn (вероятно, ранее включенному, чтобы посещать заблокированные в РФ сайты). Есть подозрение, что из-за него некорректно работает форма авторизации / регистрации на сайте. Вопрос: как определить, что у пользователя включен vpn?
  • Вопрос задан
  • 5118 просмотров
Подписаться 7 Простой 12 комментариев
Пригласить эксперта
Ответы на вопрос 3
@AlexVWill
Есть подозрение, что из-за него некорректно работает форма авторизации / регистрации на сайте.

Надо бороться с причиной, а не с явлением как таковым. Если форма криво работает из-под VPN, то виновата форма, а не VPN. Половина мира уже сидит в интеренет под VPN, поэтому стоит задуматься о том, что у тебя не так реализовано. Тем более, что каких то объективных причин нарушения работы web-сервера если на него поступают запросы от VPN нет.
Я бы скорее предположил, что в форме реализованы какие то скрипты (возможно даже сторонние JS библиотеки), который блокировщики рекламы считают спамом, и режут их, отсюда и проблема. Надо конкретно смотреть, что не так.
ак определить, что у пользователя включен vpn

Ну определишь ты, и что дальше? Как это тебе поможет реализовать исправление ошибки формы? Лучше задуматься о том, как исправить форму, чтобы все могkи ей пользоваться независимо от VPN.
Ответ написан
vovka3003
@vovka3003
Фрилансер. Инженер систем безопасности.
Только по косвенным признакам.
Если вы ждёте аудиторию из РФ, а VPN находится за ее пределами, можно дергать IP посетителя ($_SERVER['REMOTE_ADDR'];) и прогонять через какой-нибудь сервис типа https://ip-api.com. Результат отличный от "Russua" - обрабатывать, как вам требуется...
Но это как вариант. Способ весьма костыльный.
Ответ написан
CityCat4
@CityCat4 Куратор тега VPN
//COPY01 EXEC PGM=IEBGENER
1. Самый простой и босяцкий способ - проверка по IP адресу. Есть (как там в комментах сказали) вариант с запросом к стороннему серверу, есть вариант с базой on premise, я за второй. Нужный сет стран пропускаем, ненужный баним.
2. Проверка DNS. Если IP голладнский, а DNS - российский - однозначно VPN. И наоборот - если IP российский, а DNS например от гугла - можно забанить - не выпендривайся, юзай провайдерский DNS.
3. Проверка локали. Если локаль русская, а IP - голландский, однозначно VPN
4. Проверка таймзоны и локального времени. Если таймзона доступна и она например Europe/Moscow, а IP - голландский - VPN. Если опять же на IP Голландии время, когда в Голландии обычно спят - может быть VPN (хотя я вот постоянно по ночам сижу).

Есть сайт whoer.net. Он предназначен для обратной задачи - проверки уровня анонимности, но сами понимаете, любую задачу можно решать "от противного" и там можно найти много интересного о том, как он опредляет уровень анонимности VPN.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы