Показываем dialog о включенном vpn
webictusЧто такое VPN Detector и как он работает
Работает в России — логика магазина остаётся на вашем сервере; при необходимости можно отключить обращение к внешнему API и опираться на локальные базы GeoLite2 в каталоге плагина.
VPN Detector — плагин для Shop-Script на Webasyst: оценивает подключение посетителя (VPN, прокси, хостинг, подозрительные признаки) по IP, ASN, заголовкам, опционально WebRTC, таймзоне и портам. Если сумма баллов выше порога, показывается своё окно с текстом: можно предложить отключить VPN перед оплатой или просто предупредить гостя не из «своих» стран.
Что умеет плагин
Показ модального окна на витрине с настраиваемым заголовком, текстом, кнопками и ссылкой на политику конфиденциальности.
Выбор зоны проверки: все страницы, только корзина и оформление, только оформление заказа.
Опционально: логирование проверок в БД, страницы логов и статистики в админке (ссылки в настройках плагина).
Опционально: гео-блокировка по списку стран с редиректом или текстом.
Опционально: webhook при срабатывании порога.
Опционально: блокировка оформления заказа при срабатывании VPN (отдельная настройка).
CLI без правки корневого cli.php : обновление справочника для гео и слияние списка ASN (в т.ч. со встроенного JSON, если URL не задан).
Что вы получаете
Понятное предупреждение для покупателей с VPN/прокси до оплаты.
Гибкий порог баллов и отдельные веса признаков (ASN VPN, hosting, заголовки, rDNS, порты, таймзона и др.).
Кэш проверки IP на заданное число минут, белый список IP для офиса и тестов.
Списки «своих» стран и дополнительные ASN в настройках.
Где настраивать — Настройки → Плагины → VPN Detector : основные переключатели и тексты; расширенные поля (баллы, логи, cron ASN, webhook и др.) на той же странице.
Основные сценарии использования
Предупреждение перед оплатой
Включили плагин, задали порог и тексты окна.
Ограничили проверку только корзиной и чекаутом — меньше нагрузка на витрину.
Гость с высоким скорингом видит окно; может обновить страницу после отключения VPN или временно скрыть окно второй кнопкой (cookie на заданное время).
Гость не из «своих» стран
Задаёте коды стран ISO2 (например RU или RU, BY ).
Включаете предупреждение для IP вне списка — отдельно настраиваемые баллы за «чужую» страну.
Гео и провайдер
По умолчанию страна и ASN могут браться из открытого API ipwho.is (один запрос на IP, кэш), плюс заголовки CDN/nginx, если они есть.
При желании кладёте файлы GeoLite2-*.mmdb в wa-apps/shop/plugins/vpndetector/data/ — часть данных можно получать локально без внешних запросов.
Обновление списков по расписанию
В crontab вызываете стандартный CLI Webasyst: php /путь/к/сайту/cli.php shop vpndetectorPlugin — обновление вспомогательного JSON для режима гео.
php …/cli.php shop vpndetectorPlugin asn — слияние списка VPN-ASN: из вашего HTTPS URL или, если URL пуст, из встроенного vpn_asn_bundled.json .
Как считается «подозрительность»
ASN и тип сети — известные VPN/hosting ASN и ваши дополнительные ASN; настраиваемые баллы.
Заголовки и rDNS — признаки прокси и характерные имена хостов.
WebRTC, таймзона, порты — опционально, каждый фактор можно включить или выключить и выставить вес.
Порог — если сумма баллов ≥ порога, показывается окно (и при необходимости блокируется оформление заказа).
Где это в админке
Настройки плагина — включение, зона страниц, порог, тексты popup, страны, ipwho.is, гео-блок, webhook, логирование, CLI-подсказки с путями для вашей установки.
Логи и статистика — по ссылкам вверху страницы настроек (при включённом логировании и правах доступа).
Что можно настроить (кратко)
Включение плагина и область сайта для проверки.
Порог баллов, веса факторов, кэш IP, белый список IP.
Тексты и цвет акцента окна, подписи кнопок, ссылка на политику конфиденциальности.
«Свои» страны, опциональная гео-блокировка, webhook.
Логи: включение, срок хранения дней, экспорт.
Cron/CLI для гео-справочника и обновления ASN.
Частые вопросы
Нужен ли платный MaxMind на старте? Нет: можно пользоваться ipwho.is и встроенным списком ASN; MaxMind — по желанию для локального гео.
Можно ли не слать IP наружу? Да: отключите ipwho.is и используйте локальные .mmdb там, где это возможно.
Будет ли окно на странице оплаты по ссылке? Да, для маршрута paymentlink/… плагин подключает свои ресурсы.
Как обновлять список VPN-ASN без URL? Запускайте CLI asn — подмешивается встроенный JSON.
Нужна помощь с настройкой под ваш магазин? Пишите на scc.lac@mail.ru или в Telegram @web_stu .





