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



@junior_www

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


Решения вопроса 0


Ответы на вопрос 3



@AlexVWill

Есть подозрение, что из-за него некорректно работает форма авторизации / регистрации на сайте.

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

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

Ну определишь ты, и что дальше? Как это тебе поможет реализовать исправление ошибки формы? Лучше задуматься о том, как исправить форму, чтобы все могkи ей пользоваться независимо от VPN.



@vovka3003

Только по косвенным признакам.
Если вы ждёте аудиторию из РФ, а VPN находится за ее пределами, можно дергать IP посетителя ($_SERVER[‘REMOTE_ADDR’];) и прогонять через какой-нибудь сервис типа https://ip-api.com. Результат отличный от «Russua» — обрабатывать, как вам требуется…
Но это как вариант. Способ весьма костыльный.



@CityCat4 Куратор тега VPN

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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *