WordPress.org

Plugin Directory

WordSec – сканер и удаление вредоносного ПО, Firewall веб-приложений (WAF) и 2FA

WordSec – сканер и удаление вредоносного ПО, Firewall веб-приложений (WAF) и 2FA

Описание

WordSec является полноценным плагином безопасности WordPress. Восемь модулей охватывают firewall, сканер вредоносного ПО, безопасность входа, живой трафик, блокировку по IP и странам, анализ цепочки поставок, журнал аудита и оповещения, поэтому вы блокируете атаки и укрепляете сайт с одной панели вместо установки восьми плагинов.

Если ваш сайт взломают, вы потеряете не только сайт. Вы потеряете доверие клиентов, позиции в поиске и дни работы на восстановление резервных копий. WordSec создан, чтобы не допустить этого, и чтобы помочь вам восстановиться, если это уже произошло: сканер находит вредоносное ПО, карантин убирает его с дороги, а изменённые файлы ядра, плагинов и тем восстанавливаются из оригинальных копий.

Бесплатно, и лицензионный ключ вводить не нужно. Правила firewall WAF, сканирование вредоносного ПО и целостности файлов, защита от brute force, двухфакторная аутентификация, блокировка по IP и странам, журнал аудита и усиление защиты одним щелчком работают локально на вашем собственном сервере.

Firewall веб-приложений (WAF)

  • Конструктор пользовательских правил с regex и подстановочными знаками
  • Встроенные правила для SQL injection, XSS, path traversal, PHP и command injection
  • Режимы обучения и активной защиты, блокировка ботов, заголовки безопасности, rate limiting
  • Более 25 переключателей усиления защиты для доступа к wp-config, перечисления авторов и REST API
  • Необязательная расширенная защита: проверка запросов до загрузки WordPress (по вашему согласию, полностью обратимо)

Сканер и удаление вредоносного ПО

  • Правила обнаружения вредоносного ПО в файлах, базе данных и запланированных задачах
  • Проверка целостности файлов ядра, плагинов и тем через API WordPress.org
  • Плановые сканирования, карантин и восстановление одним щелчком
  • Удаление вредоносного ПО на взломанном сайте: поместите находку в карантин или восстановите изменённый файл ядра, плагина или темы из оригинальной копии

Безопасность входа, двухфакторная аутентификация (2FA) и защита от brute force

  • Двухфакторная аутентификация на основе ролей (RFC 6238 TOTP)
  • reCAPTCHA, hCaptcha и Cloudflare Turnstile, а также встроенная математическая CAPTCHA
  • Защита от brute force с прогрессивной блокировкой, honeypot и переименованием URL входа
  • Проверка утёкших паролей, управление сеансами, собственная страница входа

Живой трафик

  • Журналирование запросов в реальном времени с обнаружением ботов и экспортом в CSV
  • Фильтрация исключений по роли, IP, стране или URI

Блокировка по IP и странам

  • Списки разрешений или блокировки по странам и континентам
  • Блокировка по IP и CIDR, временная или постоянная, с поддержкой списка разрешённых

Цепочка поставок и анализ угроз

  • Оценка репутации и обнаружение заброшенных плагинов
  • Оповещения об известных уязвимостях ядра, плагинов, тем и PHP
  • Проверка целостности обновлений с резервными копиями и инвентаризацией SBOM

Журнал аудита

  • Отслеживание активности по 11 типам объектов и 14 действиям

Тревога

  • 36 типов событий оповещений с доставкой по Email, Telegram или Slack

Все функции работают локально, без лицензионного ключа. При желании служба WordSec на wordsec.net поставляет данные анализа угроз, которые невозможно получить локально: управляемые наборы правил WAF, ленту сигнатур вредоносного ПО, списки репутации IP, базу GeoIP и записи об уязвимостях. Подключение необязательно, и каждая внешняя служба описана ниже в разделе «Внешние службы».

Внешние сервисы

WordSec спроектирован для локальной работы, и без лицензионного ключа он не отправляет исходящих запросов к сервису WordSec. Основная фильтрация запросов и сканирование файлов выполняются на вашем сервере. К перечисленным ниже сервисам обращение происходит только для описанных конкретных функций, и к большинству из них только когда вы явно включаете соответствующую функцию (или, в случае WordSec API, только после активации лицензионного ключа). В этом разделе документируется каждый сторонний сервис, к которому может подключаться плагин, и данные, которые получает каждый из них.

WordSec API (api.wordsec.net)

WordSec работает бесплатно без лицензии, и в этом случае он вообще не обращается к этому сервису. Бесплатная лицензия доступна каждому; после активации ключа плагин связывается с сервисом WordSec для двух отдельных целей:

  1. Обязательные обращения к сервису (только пока активен лицензионный ключ): активация и проверка лицензии, а также обновления данных об угрозах (правила файрвола, сигнатуры вредоносного ПО, списки репутации IP, данные GeoIP, список доменов одноразовой электронной почты и данные об известных уязвимостях). Они обеспечивают работу облачных функций и не могут выполняться локально; без ключа ни одно из этих обращений не выполняется. Локальный код применения для этих функций (движок WAF, сканер вредоносного ПО, фильтры блокировки IP и фильтр ограничения регистрации) всегда присутствует и активен; без актуальной ленты у него просто нет данных threat-intelligence, с которыми можно сверять запросы.

* Когда: при активации/проверке и при плановых проверках обновлений данных об угрозах.
* Отправляемые данные: URL вашего сайта и лицензионный ключ (используются для вашей аутентификации и привязки лицензии к этому сайту), а для проверок обновлений: текущие версии установленных вами лент данных об угрозах.

  1. Дополнительная телеметрия использования/окружения (ПО ЖЕЛАНИЮ, ПО УМОЛЧАНИЮ ОТКЛЮЧЕНА): анонимный ежедневный снимок, используемый для улучшения WordSec. Он отправляется только после того, как вы явно включите «Share usage & environment data» (при активации лицензии или в Настройки Advanced Usage Data), и его можно снова отключить в любой момент.

* Когда: один раз в день, только пока включена опция.
* Отправляемые данные: обезличенный снимок окружения сайта (версии сервера, WordPress, PHP и базы данных, список активных плагинов и тем) и агрегированная статистика использования функций и безопасности WordSec. Пароли, учётные данные базы данных, секретные ключи или адреса электронной почты никогда не отправляются.

  • Условия обслуживания: https://wordsec.net/terms
  • Политика конфиденциальности: https://wordsec.net/privacy

Have I Been Pwned (api.pwnedpasswords.com)

Используется дополнительной проверкой утечки паролей для обнаружения того, встречается ли пароль в известных утечках данных, с использованием k-anonymity.
* Когда: когда пользователь задаёт или отправляет пароль и включена проверка утечки паролей.
* Отправляемые данные: только первые 5 символов SHA-1 хеша пароля. Сам пароль и его полный хеш никогда не покидают ваш сайт.
* Условия и конфиденциальность: https://haveibeenpwned.com/Privacy

WordPress.org API (api.wordpress.org, downloads.wordpress.org, wordpress.org, core.svn.wordpress.org, plugins.svn.wordpress.org, themes.svn.wordpress.org)

Используется для проверки целостности файлов ядра WordPress, плагинов и тем, для получения публичной информации о плагинах/темах (plugins_api/themes_api) для оценок репутации цепочки поставок и проверок целостности обновлений, для загрузки собственного языкового пакета WordSec с translate.wordpress.org, когда вы выбираете язык интерфейса, который ещё не установлен (тот же механизм, который использует сам WordPress при смене языка сайта), и — только когда вы нажимаете «Repair» на находке сканера — для загрузки оригинальной копии изменённого файла ядра/плагина/темы, чтобы его можно было восстановить. Загрузки для восстановления получают отдельные оригинальные файлы с plugins.svn.wordpress.org / themes.svn.wordpress.org / core.svn.wordpress.org, с откатом к полным пакетам с downloads.wordpress.org (zip-архивы плагинов/тем) и wordpress.org (zip-архивы релизов ядра).
* Когда: во время сканирований на вредоносное ПО/целостность и проверок репутации цепочки поставок, при явном действии восстановления и при сохранении языка интерфейса, перевод которого ещё не установлен.
* Отправляемые данные: версия ядра WordPress, локаль сайта и слаги/версии проверяемых плагинов/тем; при загрузке языка — слаг/версия плагина и выбранная локаль.
* Условия и конфиденциальность: https://wordpress.org/about/privacy/

RDAP (rdap.org)

Используется инструментом поиска WHOIS/RDAP на странице Инструменты для отображения информации о владельце IP-адреса или домена, который вы проверяете.
* Когда: только когда вы запускаете инструмент поиска WHOIS/RDAP.
* Отправляемые данные: IP-адрес или домен, который вы выбрали для поиска.
* Условия и конфиденциальность: https://about.rdap.org/

ipify (api.ipify.org)

Используется инструментом проверки чёрных списков на странице Инструменты и инструментом информации о сервере для определения собственного публичного IP-адреса вашего сервера.
* Когда: только когда вы запускаете инструмент «Blacklist Check» или «Server IPs».
* Отправляемые данные: обычный запрос с вашего сервера; данные сайта не включаются (сервис просто возвращает запрашивающий IP).
* Условия и конфиденциальность: https://www.ipify.org/

Провайдеры списков блокировки DNS (инструмент Blacklist Check)

Инструмент «Blacklist Check» на странице Инструменты отправляет запросы к спискам блокировки на основе DNS (DNSBL), чтобы сообщить, внесён ли публичный IPv4-адрес вашего сервера в списки. Каждый провайдер получает стандартный DNS-запрос, содержащий IP-адрес вашего сервера в обратном порядке. Опрашиваются пять провайдеров:
* Spamhaus ZEN (zen.spamhaus.org): https://www.spamhaus.org/privacy-notice/
* SpamCop (bl.spamcop.net), управляется Cisco: https://www.cisco.com/c/en/us/about/legal/privacy-full.html
* Barracuda Reputation Block List (b.barracudacentral.org): https://www.barracuda.com/company/legal/privacy-policy
* UCEPROTECT Level 1 (dnsbl-1.uceprotect.net): https://www.uceprotect.net/en/index.php
* PSBL (psbl.surriel.com): https://psbl.org/
Подробности:
* Когда: только когда вы нажимаете «Blacklist Check» на странице Инструменты.
* Отправляемые данные: публичный IPv4-адрес вашего сервера, встроенный в каждый DNS-запрос к спискам блокировки.

Telegram Bot API (api.telegram.org)

Дополнительный канал доставки оповещений. Активен только когда вы настраиваете собственный токен бота Telegram и ID чата.
* Когда: когда срабатывает включённое вами оповещение безопасности и настроена доставка через Telegram.
* Отправляемые данные: текст сообщения оповещения (тип события, название сайта, соответствующий контекст IP/пользователя) на настроенный вами бот/чат.
* Условия обслуживания: https://telegram.org/tos
* Политика конфиденциальности: https://telegram.org/privacy

Входящие вебхуки Slack (hooks.slack.com)

Дополнительный канал доставки оповещений. Активен только когда вы настраиваете собственный URL входящего вебхука Slack.
* Когда: когда срабатывает включённое вами оповещение безопасности и настроена доставка через Slack.
* Отправляемые данные: текст сообщения оповещения (тип события, название сайта, соответствующий контекст IP/пользователя) на настроенный вами вебхук.
* Условия обслуживания: https://slack.com/terms-of-service
* Политика конфиденциальности: https://slack.com/privacy-policy

Google reCAPTCHA (www.google.com, www.gstatic.com)

Дополнительная CAPTCHA для входа/регистрации. Активна только когда вы выбираете reCAPTCHA и указываете свои собственные ключи.
* Когда: на формах входа и регистрации, пока функция включена.
* Загружается удалённо: reCAPTCHA требует, чтобы его скрипт виджета (www.google.com/recaptcha/api.js, поставляемый с ресурсами с www.gstatic.com) загружался из Google в браузере посетителя; он подключается только на этих формах и только пока reCAPTCHA выбран в качестве провайдера. Проверка токена выполняется серверным запросом с вашего сайта к www.google.com.
* Отправляемые данные: токен ответа CAPTCHA, ваш публичный ключ сайта и IP-адрес посетителя.
* Условия обслуживания: https://policies.google.com/terms
* Политика конфиденциальности: https://policies.google.com/privacy

hCaptcha (hcaptcha.com, js.hcaptcha.com)

Дополнительная CAPTCHA для входа/регистрации. Активна только когда вы выбираете hCaptcha и указываете свои собственные ключи.
* Когда: на формах входа и регистрации, пока функция включена.
* Загружается удалённо: hCaptcha требует, чтобы его скрипт виджета (js.hcaptcha.com/1/api.js) загружался из hCaptcha в браузере посетителя; он подключается только на этих формах и только пока hCaptcha выбран в качестве провайдера. Проверка токена выполняется серверным запросом с вашего сайта к hcaptcha.com.
* Отправляемые данные: токен ответа CAPTCHA, ваш публичный ключ сайта и IP-адрес посетителя.
* Условия обслуживания: https://www.hcaptcha.com/terms
* Политика конфиденциальности: https://www.hcaptcha.com/privacy

Cloudflare Turnstile (challenges.cloudflare.com)

Дополнительная CAPTCHA для входа/регистрации. Активна только когда вы выбираете Turnstile и указываете свои собственные ключи.
* Когда: на формах входа и регистрации, пока функция включена.
* Загружается удалённо: Turnstile требует, чтобы его скрипт виджета (challenges.cloudflare.com/turnstile/v0/api.js) загружался из Cloudflare в браузере посетителя; он подключается только на этих формах и только пока Turnstile выбран в качестве провайдера. Проверка токена выполняется серверным запросом с вашего сайта к challenges.cloudflare.com.
* Отправляемые данные: токен ответа CAPTCHA, ваш публичный ключ сайта и IP-адрес посетителя.
* Условия обслуживания: https://www.cloudflare.com/website-terms/
* Политика конфиденциальности: https://www.cloudflare.com/privacypolicy/

ipwhois.io (ipwho.is)

Необязательная служба сведений об IP, по умолчанию отключена. Все запросы выполняются по HTTPS с проверкой сертификата, и ни один из них не отправляется, пока вы не включите «Служба внешнего поиска IP» в настройках WordSec (раздел «Обработка IP-адреса посетителя»). Она используется ровно для одного: для поиска сведений об IP в живом трафике (страна, регион, город, ISP, организация, ASN). Журналирование трафика никогда не обращается к этой службе; определение страны при журналировании использует только локальную базу GeoIP.
* Когда: только пока включено согласие на службу внешнего поиска IP и только по вашему щелчку в окне сведений об IP.
* Отправляемые данные: IP-адрес, который вы выбрали для проверки.
* Условия обслуживания: https://ipwhois.io/terms
* Политика конфиденциальности: https://ipwhois.io/privacy

VirusTotal (virustotal.com)

Не запрашивается автоматически. Сканер показывает ссылку «Check on VirusTotal», которую можно нажать, чтобы открыть VirusTotal в браузере для конкретного файла.
* Когда: только когда вы нажимаете ссылку.
* Отправляемые данные: хеш файла, содержащийся в URL ссылки.
* Условия и конфиденциальность: https://docs.virustotal.com/docs/privacy-policy

Qualys SSL Labs (ssllabs.com)

Не запрашивается автоматически. Тест «Check SSL Health» на странице Инструменты выполняется полностью на вашем собственном сервере (он открывает TLS-соединение с вашим доменом и считывает сертификат). Рядом с ним ссылка «Deep Scan (SSL Labs)» открывает тест Qualys SSL Labs в новой вкладке браузера; затем SSL Labs подключается к вашему сайту снаружи и оценивает его конфигурацию TLS. Ссылка содержит флаг «hide results», поэтому отчёт не публикуется на публичной доске SSL Labs.
* Когда: только когда вы нажимаете ссылку «Deep Scan (SSL Labs)».
* Отправляемые данные: доменное имя вашего сайта, содержащееся в URL ссылки.
* Условия: https://www.ssllabs.com/about/terms.html
* Конфиденциальность: https://www.qualys.com/company/privacy/

Благодарности

WordSec включает перечисленные ниже сторонние библиотеки. Каждая библиотека распространяется под лицензией, совместимой с собственной лицензией WordSec «GPLv2 or later». Каждая включённая библиотека сохраняет свой внутрифайловый лицензионный баннер и/или свой исходный файл лицензии, а полный оригинальный (не минифицированный) исходный код каждой из них доступен по ссылке на соответствующий проект и версию.

Библиотеки PHP (`vendor/`)

TCPDF 6.11.3
* Лицензия: LGPL-3.0-or-later
* Авторские права: Nicola Asuni, Tecnick.com LTD
* Источник: https://github.com/tecnickcom/TCPDF
* Файл лицензии: vendor/tecnickcom/tcpdf/LICENSE.TXT
* Используется для: генерации отчётов и экспорта в PDF

SimpleXLSXGen 1.5.x
* Лицензия: MIT
* Авторские права: (c) 2020-2022 Sergey Shuchkin
* Источник: https://github.com/shuchkin/simplexlsxgen
* Файл лицензии: vendor/shuchkin/simplexlsxgen/LICENSE
* Используется для: экспорта в XLSX (Excel)

Библиотеки JavaScript / CSS (`assets/*/vendor/`)

Select2 4.1.0-rc.0
* Лицензия: MIT
* Авторские права: Kevin Brown, Igor Vaynberg и участники Select2
* Источник: https://github.com/select2/select2
* Текст лицензии: https://github.com/select2/select2/blob/master/LICENSE.md
* Включённые файлы: assets/js/vendor/select2.min.js, assets/css/vendor/select2.min.css

ApexCharts 5.16.0
* Лицензия: MIT
* Авторские права: (c) 2018-2026 ApexCharts
* Источник: https://github.com/apexcharts/apexcharts.js
* Текст лицензии: https://github.com/apexcharts/apexcharts.js/blob/main/LICENSE
* Включённые файлы: assets/js/vendor/apexcharts.min.js

jsVectorMap 1.7.0
* Лицензия: MIT
* Авторские права: (c) Mustafa Omar и участники jsVectorMap
* Источник: https://github.com/themustafaomar/jsvectormap
* Текст лицензии: https://github.com/themustafaomar/jsvectormap/blob/master/LICENSE
* Включённые файлы: assets/js/vendor/jsvectormap.min.js, assets/css/vendor/jsvectormap.min.css
* Используется для: визуализаций карты мира (Живой трафик / Блокировка / Файрвол)

Данные карты мира (world_mill), зарегистрированные как карта «world» в jsVectorMap
* Лицензия: MIT
* Авторские права: участники jvectormap-content; геометрия карты получена из Natural Earth (public domain)
* Источник: https://www.npmjs.com/package/jvectormap-content
* Включённые файлы: assets/js/vendor/world.js
* Используется для: геометрии стран, отображаемой в визуализациях карты мира выше

qrcode-generator 1.4.4
* Лицензия: MIT
* Авторские права: Kazuhiko Arase
* Источник: https://github.com/kazuhikoarase/qrcode-generator
* Текст лицензии: https://github.com/kazuhikoarase/qrcode-generator/blob/master/LICENSE
* Включённые файлы: assets/js/vendor/qrcode.min.js

Иконки / ресурсы

flag-icons (SVG-флаги стран)
* Лицензия: MIT (SVG-разметка); сами дизайны флагов находятся в public domain
* Авторские права: (c) 2013 Panayiotis Lipiridis
* Источник: https://github.com/lipis/flag-icons
* Текст лицензии: https://github.com/lipis/flag-icons/blob/main/LICENSE
* Включённые файлы: assets/images/flags/*.svg (флаги стран, 4×3 viewBox="0 0 640 480")

Скриншоты

Установка

  1. Загрузите файлы плагина в /wp-content/plugins/wordsec/ или установите его через экран Плагины в WordPress.
  2. Активируйте плагин через экран Плагины в WordPress.
  3. Откройте меню WordSec, чтобы начать настройку.

При активации создаются только таблицы базы данных плагина, настройки по умолчанию и его собственный каталог данных. WordSec никогда не изменяет .htaccess, .user.ini или wp-config.php, не меняет права доступа к файлам и не устанавливает пред-WordPress загрузчик WAF без явного, чётко обозначенного действия с вашей стороны, а при деактивации все такие изменения отменяются.

Часто задаваемые вопросы

Замедляет ли WordSec мой сайт?

Нет. WordSec построен на минимальном количестве запросов к базе данных, пакетной обработке и интеллектуальном кэшировании, поэтому защита не достигается ценой производительности.

Нужен ли лицензионный ключ для использования WordSec?

Нет. WordSec устанавливается и работает как полностью функциональный бесплатный плагин с локальной защитой: файрвол веб-приложений (ваши собственные пользовательские правила плюс встроенные предустановленные правила), защита от brute-force и защита входа, двухфакторная аутентификация, усиление безопасности, настройка геоблокировки, журнал аудита и многое другое работают без какого-либо ключа.

Требуется ли какой-либо внешний сервис?

Нет, для работы не требуется. Основная защита WordSec выполняется локально на вашем сервере, и без лицензионного ключа плагин вообще не обращается ни к каким внешним сервисам WordSec.

Поможет ли WordSec удалить вредоносное ПО на взломанном сайте?

Да. Сканер безопасности проверяет ваши файлы, базу данных и запланированные задачи, и любую находку можно поместить в карантин одним щелчком. Изменённый файл ядра WordPress, плагина или темы можно также восстановить прямо из оригинальной копии на WordPress.org, а история сканирований хранит запись обо всём, что было найдено и изменено.

Есть ли в WordSec защита от brute force?

Да. Неудачные попытки входа ограничиваются по частоте с прогрессивной блокировкой, поэтому каждая следующая попытка из того же источника ждёт дольше. Также можно добавить поле honeypot, переименовать URL входа, потребовать CAPTCHA в форме входа и ограничить вход по IP, стране или времени суток.

Поддерживает ли WordSec двухфакторную аутентификацию?

Да. Двухфакторная аутентификация использует коды TOTP по RFC 6238 из любого стандартного приложения-аутентификатора, а вы выбираете, для каких ролей она обязательна. На случай, когда устройство потеряно и войти не может никто, константа WORDSEC_DISABLE_2FA в wp-config.php даёт аварийный доступ.

Что на самом деле блокирует firewall веб-приложений?

Встроенные наборы правил охватывают SQL injection, cross-site scripting, path traversal, а также PHP и command injection. Вы можете добавлять собственные правила в конструкторе с несколькими условиями, запускать firewall в режиме обучения, прежде чем что-либо блокировать, и при желании включить расширенную защиту, чтобы запросы проверялись до загрузки WordPress.

Можно ли использовать WordSec вместе с другим плагином безопасности?

Можно, но не рекомендуется. Два firewall, проверяющие один и тот же запрос, или два сканера, обходящие одни и те же файлы, стоят вам производительности и дают дублирующиеся оповещения. WordSec создан, чтобы полностью отвечать за безопасность сайта, поэтому обычно остальные плагины сначала отключают.

Каковы минимальные требования?

WordPress 6.9+, PHP 7.4+ и MySQL 5.6+ / MariaDB 10.1+.

Отзывы

26.07.2026
I've been using Wordfence, and it has been one of the most reliable security plugins for my WordPress sites. Easy to set up, excellent protection, and regular updates. Highly recommended! Thank you…
23.07.2026
I've tried several WordPress security plugins over the years, but WordSec has honestly been one of the best experiences so far. After the recent wp2shell vulnerability was disclosed, I tested my website with and without WordSec installed. During my testing, anonymous REST API access was blocked, preventing my site from being exposed to the same attack surface. I still updated WordPress immediately, but it was reassuring to see WordSec providing an additional layer of protection against emerging threats. Beyond that, I really like the overall feature set. Protection against SQL injection, remote code execution attempts, brute force attacks, malicious file uploads, and XML-RPC abuse gives me confidence that my sites are well protected. The firewall rules work out of the box, and I didn't have to spend hours configuring everything. Another big advantage is performance. Unlike some security plugins that noticeably slow down WordPress, WordSec is lightweight and has had virtually no impact on my site's speed. If you're looking for a modern, lightweight, and reliable WordPress security plugin that focuses on practical protection instead of unnecessary complexity, I highly recommend WordSec. Great work by the developer. Looking forward to future updates!
Посмотреть все 2 отзыва

Участники и разработчики

«WordSec – сканер и удаление вредоносного ПО, Firewall веб-приложений (WAF) и 2FA» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«WordSec – сканер и удаление вредоносного ПО, Firewall веб-приложений (WAF) и 2FA» переведён на 7 языков. Благодарим переводчиков за их работу.

Перевести «WordSec – сканер и удаление вредоносного ПО, Firewall веб-приложений (WAF) и 2FA» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.1.2

  • Changed: Confirmed compatibility with WordPress 7.1.

1.1.1

  • Security: REST API responses no longer honour the ?_jsonp= callback parameter, which let any other site read a response through a script tag. A «Disable JSONP Responses» toggle in Firewall Config covers it and ships on.
  • Fixed: A number of bugs reported since 1.1.0. The login CAPTCHA logged a failed challenge and then let the login through, and its widget did not render for Turnstile and hCaptcha; the setup wizard applied your choices one step early and could lock itself out of the license step; removing an orphaned scheduled task did not always remove it, and tasks owned by an active plugin kept coming back as findings; a file with an ownership mismatch offered delete and quarantine as its only fix; and the «critical issues found» notice stayed on screen after the findings were repaired.
  • Fixed: A site behind a same-server reverse proxy could ban itself, because every visitor arrived as 127.0.0.1. Loopback addresses are never blocked now, at any layer, and rows written before this fix are ignored.
  • Changed: Request rate limiting now ships off by default. A blanket per-IP request cap also catches crawlers and shared office connections, so it is an opt-in like the other options that can turn visitors away.

1.1.0

  • Исправлено: удаление плагина с выбранной очисткой данных и последующая переустановка могли навсегда лишить пользователей двухфакторной аутентификации возможности войти, потому что сохранённые секреты 2FA переживали удаление, а их ключ шифрования нет. Теперь удаление убирает данные плагина по каждому пользователю вместе с ключом, а вариант «сохранить только лицензионный ключ» сохраняет ключевой материал, необходимый сохранённой лицензии.
  • Исправлено: после удаления плагина оставались кэшированные записи и папки GeoIP и карантина; теперь всё в uploads/wordsec удаляется, если не выбран вариант «сохранить всё».

1.0.10

  • Изменено: необязательная служба ipwhois.io теперь вызывается только при открытии окна сведений об IP в живом трафике. Журналирование трафика больше к ней не обращается, поэтому фоновые визиты не могут израсходовать месячную квоту запросов и оставить в окне сведений об IP сообщение о превышении лимита запросов.
  • Изменено: журнал живого трафика больше не хранит город для каждого запроса, а неиспользуемый столбец города удалён из базы данных. Город по-прежнему показывается в окне сведений об IP.
  • Исправлено: таблица заблокированных IP-адресов после обновления страницы загружала 25 строк, хотя было выбрано 10 на страницу. Выбор числа строк на странице, сортировка и текущая страница теперь запоминаются, как в остальных таблицах журналов, а кнопка «Сбросить» возвращает диапазон времени к значению «Все».
  • Исправлено: при сортировке таблицы журнала оповещений или журнала Firewall стрелка столбца могла указывать в сторону, противоположную фактическому порядку.

1.0.9

  • Исправлено: на сайтах, где WordPress установлен в подкаталоге, переименование URL входа не оставляло пути внутрь: пользовательский адрес входа возвращал 404, а wp-login.php и wp-admin оставались заблокированы. Теперь пользовательский адрес работает, как и сокращения /login, /admin и /dashboard.
  • Исправлено: параметр «Блокировать доступ к конфиденциальным файлам» блокировал законные загрузки из медиатеки (.zip, .sql, .log и подобные) при установке в подкаталог, потому что исключение для папки uploads не совпадало. Теперь исключение следует за реальным расположением uploads.
  • Исправлено: ловушка Blackhole никогда не срабатывала при установке в подкаталог, а запрос со строкой запроса проходил мимо неё везде.
  • Исправлено: список разрешённых IP-адресов и стран для входа не охватывал переименованную страницу входа при установке в подкаталог.
  • Исправлено: блокировка перечисления плагинов и тем не работала при установке в подкаталог, когда запрос доходил до PHP.
  • Исправлено: примеры правил для Nginx и IIS, которые показываются для серверов, игнорирующих .htaccess, теперь включают путь установки, поэтому подходят и для установки в подкаталог.
  • Исправлено: недопустимый пользовательский слаг страницы входа молча заменялся вместо того, чтобы быть отклонённым с сообщением, а на сайте, где слага ещё не было, он мог стать предсказуемым значением по умолчанию. Теперь значение отклоняется с сообщением, а прежний слаг сохраняется.
  • Исправлено: если сохранённый секрет двухфакторной аутентификации больше не удавалось расшифровать (например, после ротации ключа безопасности), вход отклонялся даже с правильным паролем, и отключение двухфакторной аутентификации не помогало. Теперь переключатель 2FA полностью отключает проверку, а константа WORDSEC_DISABLE_2FA в wp-config.php даёт аварийный доступ.
  • Исправлено: параметр «Скрыть ошибки входа» больше не заменяет сообщения об ошибках двухфакторной аутентификации и состояния сайта общим текстом о неверных учётных данных; маскируются только ошибки учётных данных.
  • Улучшено: секреты двухфакторной аутентификации, сохранённые в старых форматах шифрования, теперь в фоновом режиме перешифровываются в текущий формат, поэтому будущая ротация ключа безопасности больше не может сделать их недействительными.

1.0.8

  • Исправлено: усиление прав доступа к файлам могло сделать сайт недоступным. Оно устанавливало корневому .htaccess режим 0440, который лишает веб-сервер доступа на чтение на панелях хостинга, где веб-сервер работает от имени другого пользователя, чем владелец файла (Plesk, cPanel и подобные). После этого Apache отвечал на каждый запрос кодом 403 и записывал в журнал «AH00529 pcfg_openfile: unable to check htaccess file». Теперь корневому .htaccess устанавливается режим 0644, чтобы веб-сервер всегда мог его прочитать, а wp-config.php по-прежнему становится доступным только для чтения с режимом 0440. Затронутые сайты исправляются автоматически при следующем открытии страницы администратора с включённым параметром.
  • Исправлено: сканер вредоносного ПО рекомендовал тот же режим 0440 для корневого .htaccess, поэтому «Исправить всё» (и плановые сканирования с автоматическим исправлением) могли применить его снова. Теперь сканер ожидает 0644 и вместо этого сообщает о проблеме, если веб-сервер не может прочитать .htaccess.
  • Исправлено: проверка прав доступа к файлам на странице «Инструменты» указывала 0440 как рекомендуемый режим для .htaccess, а теперь рекомендует 0644.
  • Исправлено: оценка безопасности больше не требует, чтобы файл .htaccess был недоступен для чтения веб-серверу; на оценку влияет только доступ на запись для группы или для всех.

1.0.7

  • Исправлено: параметр «Предотвращение перечисления пользователей» больше не блокирует обычные страницы авторов. Блокируются только запросы по идентификатору (например, /?author=1, который WordPress преобразует в имя пользователя); посетитель, открывающий известный архив автора вида /author/name/, обслуживается как обычно. Конечная точка REST для пользователей и карта сайта пользователей остаются закрытыми, как и раньше.
  • Исправлено: в диалоге сканера «Просмотреть совпавшее содержимое» поле с содержимым отображалось белым, пока была активна тёмная тема.
  • Улучшено: страница блокировки, которая показывается заблокированным посетителям, содержит словесный знак WordSec со строкой «WordPress Security Plugin» под ним.
  • Улучшено: экран блокировки, который выводит расширенная защита (firewall до загрузки WordPress), теперь полностью совпадает с тем, который выдаёт WordPress, вместо почти такой же копии с дополнительным кодом ошибки и строкой ссылки.
  • Исправлено: удаление с вариантом «сохранить только лицензионный ключ» теперь сохраняет и идентификатор этого сайта, поэтому при переустановке используется существующая привязка лицензии, а сайт не регистрируется во второй раз.

1.0.6

  • Новое: сканер теперь сообщает о неожиданных лишних файлах в папках плагинов и тем, размещённых на WordPress.org (файлы, не входящие в официальный выпуск). Такие файлы — распространённое место для скрытия подброшенных вредоносных нагрузок, не соответствующих ни одной сигнатуре. Находки поддерживают карантин и охватываются функцией «Исправить всё».
  • Улучшено: восстановление файлов плагинов и тем теперь получает отдельный оригинальный файл напрямую из SVN WordPress.org (тот же канал, который уже используется для восстановления ядра) вместо загрузки и распаковки всего zip-архива плагина/темы; zip-пакет остаётся автоматическим запасным вариантом.
  • Исправлено: восстановление плагинов и тем могло сообщать «возможно, плагин не размещён на WordPress.org» для плагинов, которые там размещены, поскольку шаг распаковки zip выполнялся без инициализированной файловой системы WordPress.
  • Исправлено: темы по умолчанию, поставляемые с WordPress (например, Twenty Twenty-Five), больше не вызывают ложных находок «Изменённый файл темы». WordPress поставляет собственные сборки этих тем, которые могут побайтно отличаться от выпуска той же версии в каталоге тем; файлы, соответствующие официальным контрольным суммам ядра, теперь распознаются как подлинные.
  • Улучшено: таблица «История сканирований» показывает полную разбивку по серьёзности (всего, критическая, высокая, средняя, низкая, информационная) при наведении на столбец «Найдено проблем».

1.0.5

  • Исправлено: сканер вредоносного ПО больше не помечает собственные неизменённые файлы WordSec. Файлы, побайтно совпадающие с официальными контрольными суммами выпуска WordPress.org для установленной версии WordSec, исключаются из сопоставления с сигнатурами; изменённый или неизвестный файл по-прежнему не проходит проверку контрольной суммы и сканируется обычным образом.

1.0.4

  • Новое: мастер настройки. Первая активация теперь открывает пошаговую управляемую настройку: выберите Рекомендуемую, Стандартную или полностью Пользовательскую конфигурацию для firewall, безопасности входа, блокировки и настроек, настройте CAPTCHA, двухфакторную аутентификацию, переименование URL входа и каналы доставки тревог и завершите шагом лицензии. Каждое изменение, касающееся передачи данных или файлов сервера, раскрывается до его применения, а мастер можно перезапустить в любое время из Настроек.
  • Новое: выбор того, что произойдёт с вашими данными при удалении (сохранить всё, сохранить только лицензионный ключ или удалить всё), теперь предлагается в диалоге при деактивации плагина, в дополнение к существующему элементу управления в Настройках.
  • Улучшено: обнаружение и производительность сканера вредоносного ПО.
  • Улучшено: визуальные доработки по всему интерфейсу администратора.
  • Исправлено: известные проблемы, о которых сообщалось после выхода 1.0.3.

1.0.3

  • WordPress 6.9 теперь минимальная поддерживаемая версия.
  • Пред-WordPress загрузчик WAF («Расширенная защита») больше не устанавливается при активации. Это явно подключаемая опция на странице Файрвол, которая перечисляет каждое вносимое ею изменение на сервере, и её отключение (или деактивация плагина) отменяет их все.
  • Функции усиления безопасности, которые записывают в .htaccess, .user.ini или wp-config.php, меняют права доступа к файлам или удаляют файлы, теперь по умолчанию отключены, и описание каждого переключателя точно указывает, что он записывает.
  • Деактивация теперь восстанавливает исходные отладочные константы wp-config.php и исходные права доступа к файлам, а также удаляет все файлы и директивы, добавленные плагином; удаление повторно выполняет эту очистку в качестве подстраховки.
  • Резервная IP-геолокация и поиск сведений об IP в Живом трафике переключены с ip-api.com на ipwhois.io, всегда по HTTPS с проверкой сертификата, и каждый запрос теперь ограничен новой отключённой по умолчанию опцией «External IP Lookup Service» (Настройки Visitor IP Handling).
  • Оценки репутации цепочки поставок теперь полностью работают без лицензионного ключа: публичные данные о плагинах/темах wordpress.org загружаются напрямую, когда зеркало сервиса недоступно.
  • Диалог сведений об IP в Живом трафике показывает локальную статистику запросов (итоги, количество блокировок, уровень угрозы), даже когда внешние поиски отключены.
  • Страница Настройки реорганизована: Usage Data перемещён наверх, параметры языка и интерфейса объединены в одну карточку Admin Interface, а раздел Visitor IP переименован в Visitor IP Handling.
  • Описания на странице Инструменты теперь называют внешние сервисы, к которым обращается каждый инструмент (api.ipify.org, rdap.org и провайдеры списков блокировки DNS).
  • Расширена документация по внешним сервисам: теперь перечислены провайдеры списков блокировки DNS, все хосты загрузки wordpress.org и сервис ipwhois.io.
  • Исправлены некоторые известные ошибки.
  • Внесены визуальные улучшения.

1.0.2

  • Все функции теперь полностью работают локально без лицензионных ограничений.
  • Исправлена ошибка в сканере вредоносного ПО.
  • Данные времени выполнения (правила WAF, списки блокировки, GeoIP, карантин) теперь размещаются в папке uploads (uploads/wordsec).
  • Дополнительные исправления расположения файлов/каталогов и соответствия рекомендациям wp.org.

1.0.1

  • Встроенные скрипты/стили перенесены в API постановки в очередь WordPress.
  • Усилена очистка входных данных при обработке запросов.
  • Обновлены включённые библиотеки: ApexCharts 5.16.0, TCPDF 6.11.3.
  • База данных GeoIP теперь хранится в wp-content/wordsec-data/ вместо папки плагина.
  • Расширена документация по внешним сервисам в этом readme.

1.0.0

  • Первый публичный релиз.