Значительная часть атак на российские сайты поступает с зарубежных IP-адресов: автоматический подбор паролей к административной панели, DDoS-запросы, спам-регистрации и попытки эксплуатации уязвимостей. Для бизнесов, ориентированных исключительно на российский рынок, зарубежный трафик зачастую не представляет коммерческой ценности, но создаёт серьёзные риски. Компонент «Гео-блокировка по странам» для 1С-Битрикс позволяет установить точные географические границы доступа к вашему сайту, сохраняя его открытым для целевой аудитории и закрытым для нежелательных источников.
Комплексный компонент географической фильтрации трафика для сайтов на 1С-Битрикс. Полная блокировка или разрешение доступа к публичной части и административной панели на основе геолокации IP-адреса посетителя. Белые и чёрные списки стран, раздельные правила, детальный журнал всех заблокированных обращений.
Сценарии применения
Компонент гибко настраивается под различные бизнес-задачи. Ниже представлены два наиболее востребованных сценария использования гео-блокировки.
Интернет-магазины, сервисные компании и организации, работающие исключительно на внутреннем рынке. Зарубежный трафик не приносит заказов, но создаёт нагрузку и угрозы безопасности.
- Белый список: только Россия, Беларусь, Казахстан
- Все остальные страны автоматически заблокированы
- Снижение нагрузки на сервер до 40%
- Устранение спама из зарубежных источников
Сайт открыт для всего мира, но доступ к панели администратора (/bitrix/admin/) ограничен только для определённых стран. Эффективно блокирует brute-force атаки из-за рубежа.
- Фронтенд: доступен из всех стран без ограничений
- Админка: только Россия или указанные страны
- Блокировка 99% попыток подбора паролей
- Журнал всех заблокированных обращений к бекенду
Функции компонента
Компонент обеспечивает многоуровневую географическую фильтрацию с гибкой настройкой правил, раздельным управлением зонами и полным журналированием.
Режим «разрешить только указанным». Администратор формирует перечень стран, из которых доступ к сайту или его части разрешён. Все IP-адреса, не относящиеся к выбранным странам, автоматически блокируются. Оптимальный режим для бизнесов, работающих строго на внутреннем рынке или в ограниченном числе регионов.
Режим «заблокировать выбранные». Администратор указывает страны, из которых доступ запрещён. Весь остальной мир продолжает свободно пользоваться сайтом. Подходит для проектов с международной аудиторией, но испытывающих регулярные атаки из конкретных географических регионов.
Отдельный набор правил для публичной части сайта. Управляет доступом посетителей к страницам каталога, статьям, форме заказа и другим разделам. Позволяет полностью закрыть сайт от определённых стран или, наоборот, оставить его открытым при блокировке административной зоны.
Независимый набор правил для бекенда (/bitrix/admin/ и смежные директории). Доступ к панели управления может быть ограничен жёстче, чем к публичной части. Например, фронтенд открыт для всего мира, а вход в админку доступен только из России — это кардинально снижает количество попыток взлома.
Компонент использует актуальную базу данных GeoIP для мгновенного определения страны происхождения каждого запроса. База покрывает свыше 250 стран и территорий с высокой точностью геолокации. Обновление базы выполняется регулярно для поддержания корректности определения.
Каждая заблокированная попытка доступа фиксируется в журнале с указанием IP-адреса, определённой страны, запрашиваемого URL, даты и времени обращения. Администратор просматривает журнал через панель управления, анализирует географию атак и при необходимости корректирует правила блокировки.
Возможность добавить конкретные IP-адреса или диапазоны в список исключений, независимо от страны. Это позволяет обеспечить доступ для удалённых сотрудников, находящихся за рубежом, партнёров или внешних сервисов, которые должны взаимодействовать с сайтом вне зависимости от географической принадлежности.
Вместо стандартной ошибки 403 заблокированный посетитель видит информативную страницу с объяснением причины ограничения. Содержимое и оформление страницы настраивается администратором. Можно указать контактные данные для связи или предложить альтернативный способ обращения.
Схема работы компонента
Каждый входящий запрос проходит через цепочку проверок на уровне сервера. Решение о допуске или блокировке принимается за миллисекунды, не влияя на скорость загрузки для разрешённых посетителей.
Посетитель, бот или автоматическая система обращается к любой странице сайта. Серверный обработчик перехватывает запрос до формирования ответа.
Компонент извлекает IP-адрес посетителя и определяет страну происхождения через локальную базу GeoIP. Операция выполняется мгновенно без внешних API-запросов.
Анализ запрашиваемого URL определяет, относится ли обращение к публичной части сайта или к административной панели. К каждой зоне применяется соответствующий набор правил.
Страна посетителя сверяется с белым или чёрным списком активной зоны. Параллельно проверяется список IP-исключений. Результат проверки определяет дальнейшее действие:
Страница загружается в штатном режиме
Отображается страница ограничения
IP, страна, URL, время фиксируются в логе
Структура файлов компонента
Компонент реализован в архитектуре 1С-Битрикс и размещается в директории local. Серверная логика фильтрации, адаптеры GeoIP-базы, административный интерфейс и журнал событий выделены в независимые файлы для удобства поддержки и масштабирования.
Если необходима индивидуальная разработка
Ниже представлена детальная оценка трудозатрат на создание каждого файла компонента. Расчёт выполнен для специалиста среднего уровня квалификации. Стоимость внедрения на сайт клиента оговаривается отдельно и в определённых случаях может быть бесплатной — например, если у клиента имеется тестовый сайт для проверки работоспособности компонента.
| Файл / компонент | Описание работ | Часы |
|---|---|---|
| init.php | Регистрация обработчика OnBeforeProlog для перехвата запросов до формирования страницы. Подключение автозагрузки классов компонента. Проверка лицензии и активации модуля. | 2 ч |
| class.php, component.php | Главный класс компонента: инициализация конфигурации, маршрутизация действий административного интерфейса (настройки, журнал, управление списками), валидация входных данных и проверка прав доступа администратора. | 5 ч |
| .parameters.php, .description.php | Описание параметров для визуального редактора Битрикс: выбор режима (белый/чёрный список), мультиселект стран для каждой зоны, поле IP-исключений, настройка страницы блокировки, email для уведомлений. | 2 ч |
| GeoIpResolver.php | Интеграция с локальной базой GeoLite2 в формате MMDB. Быстрое определение ISO-кода страны по IP-адресу. Обработка IPv4 и IPv6. Кэширование результатов для повторных запросов. Механизм обновления базы GeoIP. | 6 ч |
| RuleEngine.php | Движок правил фильтрации: загрузка конфигурации белых и чёрных списков для каждой зоны, сверка страны посетителя с активными списками, проверка IP-исключений. Поддержка диапазонов IP в формате CIDR. Возврат решения «допустить / заблокировать». | 6 ч |
| ZoneDetector.php | Анализ запрашиваемого URL для определения зоны: публичная часть или административная панель. Настраиваемые паттерны путей для каждой зоны. Поддержка кастомных директорий бекенда. | 3 ч |
| AccessLogger.php | Запись заблокированных обращений в таблицу БД: IP-адрес, код страны, название страны, запрашиваемый URL, зона, дата и время. Автоматическая очистка устаревших записей. Выборка данных для отображения в административном интерфейсе с фильтрацией и пагинацией. | 5 ч |
| BlockPageRenderer.php | Формирование HTML-страницы для заблокированных посетителей. Поддержка настраиваемого заголовка, текста и контактных данных. Корректная отправка HTTP-заголовка 403. Мультиязычная поддержка. | 3 ч |
| countries.php, GeoLite2-Country.mmdb | Подготовка справочника стран с кодами ISO 3166-1 alpha-2 и русскоязычными названиями. Интеграция и тестирование актуальной базы GeoLite2. Документация по процедуре обновления базы. | 3 ч |
| template.php, style.css, script.js | Административный интерфейс: форма настроек с мультиселектом стран и поиском, таблица журнала с фильтрацией по стране и дате, экспорт лога. AJAX-переключение стран и зон. Адаптивные стили панели управления. | 8 ч |
| block_page.php | Шаблон страницы ограничения доступа: адаптивная верстка, SVG-иконки, поле контактных данных. Поддержка темной и светлой темы. Вывод кода страны для информирования посетителя. | 3 ч |
| Тестирование | Проверка корректности определения стран на выборке IP-адресов. Тестирование белого и чёрного списков для обеих зон. Проверка IP-исключений и диапазонов CIDR. Нагрузочное тестирование скорости обработки. Проверка совместимости с CDN и прокси-серверами. | 6 ч |
| Документация | Инструкция по установке и первичной настройке. Описание режимов работы и параметров. Руководство по обновлению GeoIP-базы. FAQ по типичным ситуациям и устранению проблем. | 3 ч |
| Итого на разработку компонента | 55 ч | |
Указанная стоимость включает лицензию на размещение компонента на одном веб-проекте. При необходимости использования на нескольких сайтах приобретается дополнительная лицензия для каждого проекта. Лицензия предоставляется бессрочно и включает все обновления в рамках текущей мажорной версии компонента, в том числе актуализацию базы GeoIP.
Каждый сайт индивидуален по серверной конфигурации, наличию CDN, прокси-серверов и установленных модулей. Если после установки компонента гео-блокировки возникнут ошибки определения стран или конфликты с другими компонентами вашего сайта, специалисты компании ВеоМедиа устранят их бесплатно в рамках гарантийной поддержки.
Функциональность компонента может быть расширена под задачи вашего проекта. Например, добавление блокировки по регионам внутри страны, интеграция с Telegram-уведомлениями о заблокированных атаках, автоматическое формирование правил на основе анализа журнала. Любые доработки обсуждаются и оцениваются отдельно. Текущий компонент предоставляется исключительно с функциями, описанными в разделе выше.
По данным аналитических отчётов за 2025 год, более 78% автоматизированных атак на российские сайты поступает с зарубежных IP-адресов. Подбор паролей к админке, SQL-инъекции и DDoS-запросы генерируются ботнетами, расположенными преимущественно за пределами РФ. Компонент гео-блокировки отсекает подавляющее большинство таких угроз на самом раннем этапе — до обработки запроса сервером, экономя ресурсы и повышая общую устойчивость сайта.

