Описание
Advanced Country Blocker помогает вам защитить ваш сайт WordPress, ограничивая доступ на основе геолокации (страны) или IP-адреса посетителя. После активации плагин определяет страну администратора, активировавшего плагин, и автоматически устанавливает ее в качестве единственной разрешенной страны. Все остальные посетители из других стран блокируются, если они не используют секретный ключевой параметр для временного добавления своего IP-адреса в белый список. Для определения страны по умолчанию используется сервис ip-api.com, обеспечивающий конфиденциальность, но после настройки локальной копии можно переключиться на полностью автономный файл базы данных MaxMind GeoLite2 (или совместимый).
Ключевые функции:
- Автоматически разрешает страну администратора при активации плагина.
- Гибкий поиск IP по странам – начните с встроенной интеграции ip-api.com и при необходимости переключитесь на автономный файл базы данных MaxMind GeoLite2 Country (или совместимый)
.mmdb. - Режим белого или черного списка – выберите, будет ли список стран действовать как белый или черный список, без повторного ввода стран.
- Временный доступ через настраиваемый секретный URL-параметр (например,
?MySecretKey=1). - CAPTCHA Challenge — разрешить заблокированным посетителям решить CAPTCHA, чтобы получить временный доступ (поддерживает Google reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile).
- Монитор активности в реальном времени — панель управления, отображающая активных посетителей, недавние блокировки и статистику трафика.
- Консоль аналитики – подробные графики и статистика о заблокированных попытках.
- Ручное внесение IP-адресов в черный и белый списки для дополнительной безопасности и обеспечения функционирования мониторов работоспособности.
- Дополнительные уведомления по электронной почте при блокировке новых посетителей.
- Обход админ-пароля, чтобы авторизованные администраторы всегда могли получить доступ к сайту (возможность включения/выключения в коде).
- Подробная регистрация заблокированных попыток в пользовательской таблице базы данных, отображаемая в админке WP.
- Произвольные ответы – персонализируйте заголовок/сообщение страницы блокировки, выберите статус HTTP (403, 410, 451) или перенаправьте на любой URL-адрес.
- Автоматическая очистка журналов с настраиваемым сроком хранения и кнопкой «Очистить журналы» одним щелчком мыши.
Используйте страницу настройки плагина (меню Country Blocker в админке WP), чтобы настроить список разрешенных стран, стран из черного списка, IP-адресов из черного списка, а также включить или отключить уведомления по электронной почте.
Лицензия
Этот плагин является программным обеспечением с открытым исходным кодом, лицензированным в соответствии с GPLv3 или более поздней версией.
Внешние сервисы
По умолчанию этот плагин связывается со службой геолокации ip-api.com для определения стран посетителей. Вы можете отключить все внешние поиски, переключив метод поиска IP-адресов на локальную базу данных MaxMind в настройках.
Скриншоты

Страница настройки – настройте разрешенные/запрещенные страны, IP-адреса, CAPTCHA и уведомления по электронной почте. 
Журнал заблокированных попыток – просмотр списка недавно заблокированных посетителей. 
Консоль аналитики – визуальные графики и статистика по заблокированному трафику. 
Live Monitor – просмотр активных посетителей и недавних блокировок в режиме реального времени.
Установка
- Загрузите папку с плагином в каталог
/wp-content/plugins/или установите плагин с помощью функции «Добавить плагин» в WordPress. - Скачайте базу данных GeoLite2 Country (или другую совместимую базу данных стран в формате MaxMind DB) с сайта MaxMind и поместите файл
.mmdbв любое место на вашем сервере, где PHP сможет его прочитать (необязательно, но рекомендуется для автономного режима). - Активируйте плагин через меню «Плагины» в WordPress.
- Upon activation, the plugin will:
- Определите IP-адрес активного администратора.
- Определите соответствующую страну, используя выбранный вами метод поиска (по умолчанию — удаленный API).
- Установите эту страну в качестве единственной разрешенной страны в настройках плагина.
- Перейдите в Country Blocker Настройки в меню администратора WordPress, чтобы настроить конфигурации (например, секретный ключ, страны из черного списка, IP-адреса из черного списка и т. д.), выбрать метод поиска IP-адресов и (по желанию) указать абсолютный путь к файлу
.mmdbдля автономного поиска.
Часто задаваемые вопросы
-
Где я могу получить файл базы данных GeoIP?
-
Вы можете бесплатно скачать базу данных GeoLite2 Country с сайта MaxMind (требуется бесплатная учётная запись). Загрузите файл
.mmdbв доступное место на вашем сервере (например, в папкуwp-content/uploads/) и вставьте абсолютный путь к файлу в поле GeoIP Database Path на странице настройки плагина. -
Моя геолокация IP неверна. Как это исправить?
-
Местные базы данных GeoIP иногда содержат устаревшие записи. MaxMind еженедельно обновляет GeoLite2, поэтому, если вы заметили неточности, скачайте последнюю версию. Вы также можете вручную добавлять или удалять страны на странице настройки, чтобы назначить, кому разрешен или запрещен доступ.
-
Что делать, если я случайно заблокировал себя?
-
Вы можете вручную добавить свой IP-адрес во временный белый список, используя URL-параметр (
?YourSecretKey=1), решить задачу CAPTCHA, если она включена, или войти в систему как администратор (если включен обход администратора). Кроме того, вы можете отключить плагин через FTP или панель управления хостингом и настроить параметры. -
Этот плагин хранит какие-либо данные о посетителях?
-
Плагин сохраняет IP-адреса и (по желанию) коды стран в произвольной таблице журнала, когда посетители блокируются. Это делается исключительно в целях безопасности и административной проверки. Удалите или настройте эту функцию по мере необходимости, чтобы соблюдать правила конфиденциальности.
-
Могу ли я обойти плагин, если я являюсь администратором?
-
Да, по умолчанию, если вы вошли в систему с возможностью
manage_options. Вы можете изменить или удалить этот обход в коде плагина. -
Могу ли я настроить страницу блокировки или перенаправить посетителей на другой сайт?
-
Да. На странице настроек вы можете изменить заголовок/сообщение страницы блокировки (с заполнителями для
{ip},{country_code}и{reason}), выбрать код статуса HTTP для отправки (403, 410 или 451) или перенаправить посетителей на пользовательский URL-адрес с кодом статуса по вашему выбору. -
Как заблокировать только несколько стран?
-
Оставайтесь в режиме списка разрешенных по умолчанию, если хотите разрешить доступ только для стран, указанных в списке. Переключитесь в режим «Использовать черный список», чтобы указать только те страны, которые хотите заблокировать — все остальные будут разрешены автоматически.
-
Как очистить или сократить таблицу журнала?
-
Используйте кнопку «Очистить журналы» на экране «Журналы блокировки», чтобы мгновенно удалить все записи. Вы также можете настроить автоматическую очистку журналов на странице настройки — установите срок хранения
0дней, чтобы сохранять все записи на неопределенный срок. -
Какие поставщики CAPTCHA поддерживаются?
-
Плагин поддерживает Google reCAPTCHA v2 (флажок), Google reCAPTCHA v3 (невидимый), hCaptcha и Cloudflare Turnstile. Вы можете настроить предпочтительного поставщика на странице настройки.
-
Как работает монитор реального времени?
-
Live Monitor отображает активность посетителей в режиме реального времени, включая активных посетителей, недавние блокировки и статистику трафика. Данные обновляются автоматически каждые 3 секунды и временно сохраняются.
Отзывы
Участники и разработчики
«Advanced Country Blocker» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Advanced Country Blocker» переведён на 1 язык. Благодарим переводчиков за их работу.
Перевести «Advanced Country Blocker» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
2.3.0
- Новое: добавлена функция CAPTCHA Challenge, позволяющая заблокированным посетителям пройти проверку с помощью CAPTCHA, чтобы получить временный доступ
- Новое: добавлен монитор активности в реальном времени с отслеживанием посетителей, недавними блокировками и статистикой трафика
- Новое: добавлена аналитическая консоль с интерактивными диаграммами, отображающими количество заблокированных попыток за определенный период времени, страны с наибольшим количеством попыток и причины блокировки
- Безопасность: исправлена уязвимость, позволявшая обойти секретный ключ — теперь требуется, чтобы значение было равно «1», а не просто проверка наличия
- Безопасность: исправлена уязвимость SSRF при скачивании GeoIP — теперь проверяются URL-адреса и ограничивается доступ только к доверенным доменам
- Безопасность: исправлена проблема подделки IP-адреса с помощью функции WordPress wp_http_get_original_ip()
- Безопасность: добавлены ограничения на размер файлов и проверка содержимого для загрузки/скачивания базы данных GeoIP
- Безопасность: исправлена утечка секретного ключа CAPTCHA на странице настройки — теперь он маскируется в целях безопасности
- Безопасность: добавлена надлежащая очистка вывода по причине блокировки в ответах AJAX
- Исправлено: Удалены дублирующиеся вспомогательные функции (advcb_get_country_name, advcb_get_country_flag)
- Исправлено: удалены избыточные вызовы функции очистки для повышения производительности
- Исправлено: удалены дублирующиеся обратные вызовы очистки
2.2.0
- Добавлена опциональная локальная база данных MaxMind GeoLite2 (или совместимая), при этом интеграция с ip-api.com остается методом по умолчанию.
- Добавлены поля настройки для выбора метода поиска, настройки пути к файлу базы данных
.mmdbи отображения сообщений о состоянии для администраторов.
2.1.0
- Добавлена полностью настраиваемая страница блокировки (заголовок, заполнители сообщений и выбираемый код состояния HTTP).
- Добавлена дополнительная функция перенаправления с настраиваемыми кодами статуса для заблокированных посетителей.
- Добавлен список доверенных IP-адресов для обхода блокировки (идеально подходит для служб мониторинга работоспособности).
- Добавлена автоматическая очистка журналов с настраиваемым сроком хранения и уведомлениями администратора.
- Улучшенные настройки для переключения между режимами «белый список» и «черный список».
2.0.4
- Протестировано с последней версией WordPress
2.0.3
- Добавлена функция очистки журналов
- Добавлена функция отключения журналов
- Исправлена пагинация журналов
2.0.2
- Добавлен режим черного списка
2.0.1
- Исправлены проблемы с рекомендациями по репозиторию WordPress
2.0.0
- Добавлено ведение журнала в произвольную таблицу базы данных.
- Добавлена функция черного списка стран/IP-адресов.
- Добавлен обход админ-панели для тестирования.
- Добавлены уведомления по электронной почте.
1.1.0
- При активации плагина по умолчанию устанавливается страна администратора.
- Введен секретный URL-ключ для временного добавления IP-адресов в белый список.
1.0.0
- Первоначальный выпуск плагина с базовой блокировкой стран и кодом страны по умолчанию.
