WordSec
WordSec is a complete WordPress security plugin. Eight modules cover the firewall, malware scanner, login security, live traffic, IP and country blocking, supply-chain intelligence, audit log and alerts, so you block attacks and harden your site from one dashboard instead of installing eight plugins.
Free, and no license key to enter. WAF firewall rules, malware and file-integrity scanning, brute force protection, two factor authentication, IP and country blocking, the audit log and one-click hardening all run locally on your own server.
Файрвол
- Custom rule builder with regex and wildcard matching
- Built-in rules for SQL injection, XSS, path traversal, PHP and command injection
- Learning and active modes, bot blocking, security headers, rate limiting
- 25+ hardening toggles for wp-config access, author enumeration and REST API
- Optional Extended Protection: pre-WordPress request inspection (opt-in, fully reversible)
Malware Scanner
- Malware detection rules across files, the database and scheduled tasks
- Core, plugin and theme file-integrity verification via the WordPress.org API
- Scheduled scans, one-click quarantine and restore
Безопасность входа
- Role-based two-factor authentication (RFC 6238 TOTP)
- reCAPTCHA, hCaptcha and Cloudflare Turnstile, plus a built-in math CAPTCHA
- Brute-force protection with progressive lockout, honeypot and login URL rename
- Leaked-password checking, session management, custom login page
Живой трафик
- Real-time request logging with bot detection and CSV export
- Exclusion filtering by role, IP, country or URI
Блокировка
- Списки разрешений или блокировки по странам и континентам
- Блокировка отдельных IP и диапазонов CIDR, временная или постоянная, с поддержкой списка разрешений
Цепочка поставок
- Reputation scoring and abandoned-plugin detection
- Known-vulnerability alerts for core, plugins, themes and PHP
- Update-integrity verification with backups and an SBOM inventory
Audit Log and Alarm
- Полное отслеживание активности по 11 типам объектов и 14 действиям
- 36 alert event types delivered by Email, Telegram or Slack
Every feature runs locally with no license key. Optionally, the WordSec service at wordsec.net supplies threat-intelligence data that cannot be produced locally: managed WAF rule sets, the malware signature feed, IP-reputation lists, the GeoIP database and vulnerability records. Connecting is optional and every external service is documented in «External services» below.
Внешние сервисы
WordSec спроектирован для локальной работы, и без лицензионного ключа он не отправляет исходящих запросов к сервису WordSec. Основная фильтрация запросов и сканирование файлов выполняются на вашем сервере. К перечисленным ниже сервисам обращение происходит только для описанных конкретных функций, и к большинству из них только когда вы явно включаете соответствующую функцию (или, в случае WordSec API, только после активации лицензионного ключа). В этом разделе документируется каждый сторонний сервис, к которому может подключаться плагин, и данные, которые получает каждый из них.
WordSec API (api.wordsec.net)
WordSec работает бесплатно без лицензии, и в этом случае он вообще не обращается к этому сервису. Бесплатная лицензия доступна каждому; после активации ключа плагин связывается с сервисом WordSec для двух отдельных целей:
- Обязательные обращения к сервису (только пока активен лицензионный ключ): активация и проверка лицензии, а также обновления данных об угрозах (правила файрвола, сигнатуры вредоносного ПО, списки репутации IP, данные GeoIP, список доменов одноразовой электронной почты и данные об известных уязвимостях). Они обеспечивают работу облачных функций и не могут выполняться локально; без ключа ни одно из этих обращений не выполняется. Локальный код применения для этих функций (движок WAF, сканер вредоносного ПО, фильтры блокировки IP и фильтр ограничения регистрации) всегда присутствует и активен; без актуальной ленты у него просто нет данных threat-intelligence, с которыми можно сверять запросы.
* Когда: при активации/проверке и при плановых проверках обновлений данных об угрозах. * Отправляемые данные: URL вашего сайта и лицензионный ключ (используются для вашей аутентификации и привязки лицензии к этому сайту), а для проверок обновлений: текущие версии установленных вами лент данных об угрозах.
- Дополнительная телеметрия использования/окружения (ПО ЖЕЛАНИЮ, ПО УМОЛЧАНИЮ ОТКЛЮЧЕНА): анонимный ежедневный снимок, используемый для улучшения 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 с проверкой сертификата, и ни один из них не отправляется, пока вы не включите «External IP Lookup Service» в настройках WordSec (раздел Visitor IP Handling). Он используется для трёх целей: (1) определение страны по IP посетителя, когда локальная база данных GeoIP недоступна, (2) определение города по IP посетителя для журнала Живого трафика, когда локальная база данных не может дать ответ, и (3) поиск «IP details» в Живом трафике (страна, регион, город, ISP, организация, ASN). * Когда: только пока включена опция External IP Lookup Service. Автоматически для страны/города при журналировании трафика и по вашему клику для поиска сведений об IP. * Отправляемые данные: запрашиваемый 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")
