WordPress — бесплатная open source CMS. Её можно ставить, править и раздавать как угодно. Из-за популярности и открытой архитектуры дыры в ядре, темах и плагинах быстро становятся массовой проблемой: один баг — и под ударом оказываются тысячи сайтов.
Цифры из исходного материала (на момент написания заметки): в зоне RU на WordPress уже тогда держалась заметная доля новых сайтов, в каталоге плагинов — десятки тысяч расширений. При этом защитными плагинами пользовалась лишь небольшая часть владельцев. Открытость — плюс для разработки и минус, если админка и обновления заброшены.
Что считать безопасностью сайта
Под безопасностью обычно имеют в виду два слоя. Первый — не дать внедрить код (бэкдоры, подмена страниц, кража контента и базы). Второй — не дать заспамить формы, комментарии и обратную связь. Спам бесит, но взлом кода бьёт сильнее: от «тихой» кражи до полного угона сайта.
Сложность в том, что угрозы меняются, а факт взлома не всегда виден без логов, сканеров и контроля целостности файлов. Сайт может «работать», а в теме уже лежат веб-шеллы.
Типичные векторы атак
- SQL Injection — подстановка SQL через параметры URL или формы, если ввод не экранируют.
- XSS — внедрение скрипта через поля ввода и вывод без очистки.
- Загрузка файла — вредоносный PHP/скрипт через уязвимую форму upload.
- CSRF — запрос от имени залогиненного админа без его ведома.
- Brute force — перебор логина и пароля к wp-login / xmlrpc.
- DoS / DDoS — перегрузка трафиком с одного или многих источников.
- Open Redirect — редирект на фишинговый URL.
- Фишинг — поддельные страницы «как ваш сайт» для сбора паролей.
- Malware — вредоносные скрипты в теме, плагине или uploads.
- LFI / RFI — подключение локального или удалённого файла с кодом атакующего.
- Обход аутентификации и RCE — вход мимо формы или выполнение кода на сервере.
- SSRF, XXE, directory traversal — запросы сервера «не туда», разбор XML, обход каталогов.
- Перечисление пользователей — через
?author=Nи похожие приёмы для последующего brute force.
Откуда чаще всего «пробивают» WordPress
- Около 40% — сторона хостинга (слабая изоляция, чужие аккаунты, дыры панели). Выбирайте провайдера с нормальной репутацией и обновлениями.
- Около 30% — кривые или заражённые темы. Берите темы с понятным автором и обновлениями; нулевые «nulled»-пакеты — лотерея с бэкдором. Ориентир по нормальным продуктам: темы и плагины WPShop.
- Остальное — устаревшие плагины, слабые пароли, открытый xmlrpc, лишние учётки, отсутствие 2FA.
Базовый чеклист защиты
- Обновляйте ядро, темы и плагины. Неиспользуемое — удаляйте, не «выключайте и забывайте».
- Сильные уникальные пароли + 2FA на админов. Не используйте логин
admin. - Ограничьте попытки входа (limit login / firewall), при возможности закройте xmlrpc, если он не нужен.
- Права на файлы: конфиги и PHP не должны быть world-writable; uploads — без исполнения PHP, если хостер позволяет.
- Регулярные бэкапы (файлы + БД) с проверкой восстановления, не только «галочка в панели».
- WAF / security-плагин (Wordfence, Sucuri и аналоги) + мониторинг изменений файлов.
- HTTPS везде, актуальные сертификаты, без mixed content.
- Минимум плагинов «на всякий случай». Каждый плагин — поверхность атаки.
Если сайт уже «странный»
Смените все пароли (WP, FTP/SFTP, БД, хостинг-панель), проверьте users и свежие плагины/темы, просканируйте файлы, сравните с чистым бэкапом, посмотрите access/error-логи. Иногда быстрее поднять чистую копию из бэкапа и перенести только проверенный контент, чем неделю вычищать шеллы.
Безопасность WordPress — не разовая «установка антивируса», а привычка: обновления, бэкапы, минимум лишнего, контроль доступов. Без этого даже хороший хостинг не спасёт.
