Как определить посетителей с VPN и прокси на сайте
Пошаговый способ проверять подключения через VPN, Tor и дата-центры в ключевые моменты, такие как регистрация, вход и оплата, и решать, как на них реагировать.
Зачем смотреть на IP
Один и тот же человек, раз за разом берущий бесплатный пробный период, боты с повторными регистрациями и платежи, которые выдают себя за платежи из другой страны, в основном приходят через VPN, прокси и облачные серверы. Если смотреть, из какой сети пришёл IP посетителя, можно выявить значительную часть таких подключений.
1. Получите реальный IP посетителя
IP подключения, которое получает ваш сервер, и есть IP посетителя. Если сайт работает за прокси, например Cloudflare, IP подключения принадлежит Cloudflare, поэтому используйте заголовок CF-Connecting-IP; за другим балансировщиком нагрузки берите первое значение заголовка X-Forwarded-For, который он добавляет. Посетители могут подделать эти заголовки, поэтому доверяйте им только в запросах, прошедших через ваш собственный прокси.
2. Проверяйте только в ключевые моменты
Проверять каждую страницу не нужно. Если проверять IP только там, где злоупотребление стоит вам денег (регистрация, вход, сброс пароля, оплата и применение купонов), всё работает быстро и недорого. Кешируйте результат для одного IP на несколько минут и используйте его повторно.
3. Решите, как реагировать
Для выходного узла Tor, известного VPN-сервера или IP дата-центра лучше добавить дополнительную проверку, например подтверждение по email или SMS, чем сразу блокировать, ведь часть настоящих клиентов пользуется VPN ради конфиденциальности. При оплате проверяйте также, отличается ли страна выпуска карты от страны подключения.
4. Сохраняйте записи
Если сохранять результат проверки вместе с записями о регистрации и платежах, потом проще найти повторяющуюся схему злоупотреблений. Однако IP-адрес относится к персональным данным, поэтому укажите в политике конфиденциальности цель и срок его хранения.
Учитывайте ограничения
VPN, которых нет в открытых списках, и прокси, арендующие домашние интернет-подключения, трудно выявить только по IP. Помогают сигналы браузера: отличается ли часовой пояс браузера от страны IP и показывает ли WebRTC другой IP.
Проверьте свой IP и местоположение прямо сейчас.
Проверить мой IP