Безопасность WordPress: роли пользователей, двухфакторная аутентификация и защита входа

В девяти случаях из десяти WordPress взламывают не через уязвимости, а просто войдя с украденным логином и паролем. Безопасность строится на трёх вещах: минимальные права для каждой роли (не больше двух administrator),

WordPress安全基线:角色、两因素与登录保护WordPress Security Baseline: roles, 2FA, login hardening 绝大多数入侵不是被攻破的,是用泄露的密码直接登进来的Most breaches log in with a leaked password, not a zero-day 用户角色最小权限Least-privilege roles 编辑给Editor 运营给AuthorEditors get Editor, writers get Author administrator不超过2个Max 2 admins 两因素认证 全员强制Enforce 2FA for all TOTP验证器 而非短信TOTP app, not SMS 管理员强制 其余角色限期开启Admins forced, others on deadline 登录保护:失败5次锁定 · 禁XML-RPC暴力破解 · 隐藏版本号 · 关文件编辑Login: lockout after 5 fails · block XML-RPC brute force · hide version · disable file edit 反直觉:改 /wp-admin 路径几乎挡不住定向攻击,限流加2FA才挡掉九成爆破Counterintuitive: renaming wp-admin barely helps; rate limit + 2FA stops 90% 离职账号先降权再删除 保留备份可恢复Demote then delete leavers; keep backups 红线:泄露过的密码必须全站轮换 一次撞库会清空所有防护Red line: rotate all passwords once leaked; credential stuffing defeats every layer 安全不是装一堆插件 是删掉没用的账号和插件 再锁死入口Security is not more plugins; it is fewer accounts and a locked door 每月审一次账号清单 每季度做一次恢复演练Audit users monthly; restore drill quarterly
Три уровня защиты WordPress: минимальные права, двухфакторная аутентификация для всех, ограничение попыток входа

Безопасность WordPress: роли пользователей, двухфакторная аутентификация и защита входа

Сначала вывод: В девяти случаях из десяти WordPress взламывают не через уязвимости, а просто войдя с украденным логином и паролем. Безопасность строится на трёх вещах: минимальные права для каждой роли (не больше двух administrator), обязательная двухфакторная аутентификация TOTP для всех и блокировка после пяти неудачных попыток входа плюс отключение перебора через XML-RPC. Контринтуитивный момент: смена адреса админки на /wp-admin почти не останавливает целевые атаки, а вот ограничение попыток входа вместе с двухфакторной аутентификацией отсекает девять десятых всех брутфорс-атак.

Сначала посчитайте аккаунты: на большинстве сайтов слишком много администраторов

Первый шаг любого взлома WordPress — страница входа. Но взломать её можно только тогда, когда у атакующего есть рабочий логин и пароль. Поэтому безопасность начинается не с установки плагина, а с подсчёта: сколько человек вообще может войти в админку.

У многих сайтов за два года накопилось семь-восемь администраторских аккаунтов: подрядчики, бывшие сотрудники, тестовые учётки, а у некоторых пароль до сих пор 123456. Утечка любого из них — это открытая настежь админка.

Пример из практики: на сайте висели чёрные ссылки, и по логам выяснилось, что вход был с аккаунта подрядчика, уволившегося полгода назад. Человек ушёл, аккаунт остался, а пароль — та самая строка из старой переписки. Атакующему не понадобилась ни одна уязвимость.

Как планировать аккаунты при выборе технологий, читайте в разделе Технологический стек для сайта на WordPress; порядок действий после взлома — в разделе После взлома сайта.

Роль Область прав Кому подходит
Администратор Весь сайт: установка плагинов, правка кода, удаление пользователей Тот, кто реально управляет сайтом, ≤2 человека
Редактор Управляет всем контентом и комментариями Ответственный за контент
Автор Пишет и управляет только своими записями Автор-фрилансер
Участник Пишет черновики, но не публикует Внешний автор по заказу
Подписчик Может только комментировать Обычный посетитель

Минимальные права: не давайте тому, кто пишет статьи, устанавливать плагины

Принцип прав простой: аккаунт должен уметь ровно столько, сколько нужно для его работы, и не больше. Контент-менеджеру, который пишет статьи, не нужны установка плагинов и правка темы — хватит Editor или Author. Administrator положен только тому, кто действительно обслуживает сайт.

Увольнение — это два шага: сначала понизить права и отключить аккаунт, неделю-две понаблюдать, не завязаны ли на нём какие-то автоматические задачи, и только потом удалять. Если удалить сразу, можно потерять авторство его записей.

Ещё нужно удалить стандартное имя пользователя admin. Многие инструменты для брутфорса первым делом пробуют именно логин admin, и если он у вас есть, вы отдаёте половину пароля.

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

Роль Роль Что нельзя разрешать
Владелец сайта / технический руководитель Администратор —
Контент-редактор Редактор Устанавливать плагины, править код
Автор Автор Править чужие записи, менять тему
Внешний автор Участник Публиковать сразу
Стажёр / временный сотрудник Участник Любые права на публикацию

Три. Двухфакторная аутентификация: ещё один замок вдобавок к паролю

Смысл двухфакторной аутентификации (2FA) в том, что даже при утечке пароля злоумышленник не войдёт без одноразового кода с вашего телефона. Это самый действенный барьер против подбора учётных данных, ведь он как раз и строится на том, что «пароль утёк где-то ещё».

Выбирайте TOTP-приложение (Google Authenticator, Authy и подобные), а не SMS. Код из SMS можно перехватить через подмену SIM-карты, а TOTP генерируется на устройстве и от оператора не зависит.

Обязательное правило вводится в два шага: для роли Administrator включайте сразу — без 2FA вход запрещён; остальным ролям дайте две недели, после чего аккаунт блокируется автоматически. Как настроить — см. раздел о защите сайта Усиление безопасности собственного сайта.

Пример из практики третий: в команде пять человек, и сначала 2FA включил только технический руководитель. Однажды из письма утёк пароль маркетолога, злоумышленник подобрал его и вошёл в админку — второй замок не сработал, потому что у маркетолога 2FA не было. Через две недели 2FA включили для всех, и только тогда эта угроза закрылась по-настоящему.

Способ 2FA Безопасность Рекомендация
TOTP-приложение Высокая: код создаётся на устройстве, без сети Рекомендуем для всех
Код из SMS Средняя: возможна подмена SIM-карты Не рекомендуем как основной способ
Код из письма Низкая: почту часто взламывают вместе с паролем Только как запасной
Аппаратный ключ Максимальная Администратор может подключить по желанию

Четыре. Защита входа: ограничение попыток и блокировка работают лучше смены адреса

Здесь стоит развеять популярное заблуждение. Во многих инструкциях советуют переименовать /wp-admin во что-нибудь необычное — якобы так злоумышленник не найдёт админку. На деле целенаправленный атакующий просканирует сайт и найдёт страницу входа; смена адреса лишь немного усложняет ему жизнь, но от подбора не спасает.

Работают две вещи: блокировка IP на время после пяти неудачных попыток входа (например, на 15 минут) — так автоматический подбор захлёбывается; и отключение публикации через XML-RPC — через него идут многие скрипты массового подбора.

Пример из практики второй: в логах видно, что некий IP за час перебрал 800 паролей, а имена пользователей — сплошь распространённые. После включения блокировки этот IP отсеялся на шестой попытке, а все следующие отклонялись мгновенно.

Ещё деталь: пусть страница входа при каждой неудаче отвечает с небольшой задержкой — тогда массовый перебор паролей обходится скрипту дороже. А когда сайт вырастет, поставьте перед страницей входа облачный WAF: распределённый подбор учётных данных будет отсекаться ещё до того, как дойдёт до WordPress.

Действие защиты Что даёт Ограничения
Блокировка IP после 5 неудач Останавливает автоматический подбор Распределённые атаки требуют облачного WAF
Отключите XML-RPC Закройте вход для скриптов Оставьте, если публикуете через приложение
Скройте версию WP Не показывайте уязвимости старых версий Это лишь сокращает утечку информации
Смените адрес админки Немного усложняет сканирование Не остановит целевые атаки
Запретите редактирование файлов из админки Защита от смены темы после взлома Правки кода — только через SFTP

Пять: что ещё нужно — резервные копии, мониторинг и минимальная поверхность атаки

Как бы хорошо вы ни защищались, всегда исходите из того, что однажды вас взломают, поэтому резервная копия — последняя страховка. Базу данных и файлы копируйте раздельно, храните в другом месте и раз в квартал проводите тренировку по восстановлению: копия, которую нельзя восстановить, — не копия. Как это делать, читайте в статье 独立站备份策略.

Поверхность атаки нужно постоянно сокращать: удаляйте неиспользуемые плагины и темы — каждый заброшенный плагин это потенциальная уязвимость. Мониторинг админки должен оповещать о подозрительных входах, например, вход администратора из нетипичного региона или в нерабочее время. Пороги мониторинга описаны в статье 独立站监控体系.

Есть ещё одно жёсткое правило: если пароль от какого-то сервиса утёк, смените пароли всех аккаунтов на сайте. Атака перебором подставит эту строку к вашей админке, и вся защита рухнет, как только пароль окажется верным.

Действие Частота Критерий нормы
Проверьте учётные записи администраторов Ежемесячно administrator ≤2个
Проверьте заброшенные плагины и темы Ежеквартально Отключили — удалите
Учения по восстановлению из бэкапа Раз в квартал Восстановление за 2 часа
Оповещение о подозрительном входе В реальном времени Мгновенное уведомление о входе из другого региона
Смена паролей Сразу после утечки Смена паролей всеми и включение 2FA

FAQ: частые вопросы

Достаточно ли установить один плагин безопасности для WordPress?
Нет. Плагин добавит ограничение попыток и сканирование, но он не отвечает за то, сколько у вас администраторов, не утёк ли пароль и включена ли двухфакторная аутентификация. Большинство взломов — это вход по утёкшему паролю, и плагин не остановит верный пароль. Правильный порядок: сначала разобраться с аккаунтами, урезать права, включить 2FA для всех, и только потом ставить плагин для ограничения попыток входа и сканирования, а не наоборот.
Поможет ли смена пути /wp-admin защититься от хакеров?
Это остановит только самых ленивых сканеров, но не целевые атаки. Инструменты атакующего быстро найдут новый адрес страницы входа. Реально работают блокировка IP после 5 неудачных попыток, закрытие XML-RPC как канала для брутфорса и обязательная двухфакторная аутентификация. Смена пути — приятный бонус, но не полагайтесь на неё как на основную защиту.
Можно ли использовать SMS-коды для двухфакторной аутентификации?
Не рекомендуется как основной способ. SMS можно перехватить через подмену SIM-карты, а у операторов бывают задержки. Лучше использовать приложение-аутентификатор TOTP, например Google Authenticator или Authy: коды генерируются локально и не зависят от сети и оператора. Администраторам можно добавить аппаратный ключ. После включения обязательно сохраните резервные коды восстановления, иначе потеря телефона заблокирует вам доступ.
Что делать с учётной записью WordPress уволенного сотрудника?
Действуйте в два шага: сначала понизьте роль аккаунта до Contributor и отключите вход, понаблюдайте одну-две недели и убедитесь, что от него не зависят ни запланированные задачи, ни авторство статей, и только потом удаляйте. Не удаляйте сразу, иначе опубликованные им статьи потеряют автора. Перед удалением убедитесь, что все пароли на сайте сменены: уволившийся сотрудник вполне может помнить пароль от админки.
Сколько аккаунтов Administrator стоит оставлять?
Не больше двух — тех, кто реально управляет сайтом. Редакторам контента давайте Editor, авторам текстов — Author, внештатным авторам — Contributor. Каждый лишний администратор — это ещё одна точка утечки пароля. Раз в месяц просматривайте список пользователей и понижайте в правах или удаляйте неактивных, уволившихся и тестовых администраторов: это самое дешёвое и самое эффективное действие для безопасности.
Как выглядит брутфорс в логах?
Один или группа IP за короткое время отправляют множество POST-запросов на страницу входа wp-admin, перебирая имена пользователей из списка популярных, и получают 401. Если включена блокировка после 5 неудачных попыток, на шестой запрос такие попытки будут мгновенно отклонены. Если видно, что попытки идут одновременно с распределённых подсетей, ограничения на уровне одного сайта недостаточно — нужны правила на уровне облачного WAF или CDN, которые блокируют трафик ещё до того, как он дойдёт до WordPress.

В заключение

Безопасность WordPress — вещь контринтуитивная: кажется, что нужны сложные плагины и хитрые правила, а на самом деле судьбу сайта решает то, удалили ли вы лишних администраторов и поставили ли на каждый аккаунт второй замок. Эти две вещи ничего не стоят, но останавливают большинство вторжений.

Три шага на практике: сегодня просмотрите список пользователей и сократите число administrator до двух; включите всем администраторам обязательный TOTP-двухфактор; настройте блокировку после 5 неудачных входов и отключите XML-RPC. Дальше — раз в месяц проверяйте аккаунты, раз в квартал проводите учения по восстановлению.

Запомните одну фразу: безопасность — это не навесить на дверь хитрые замки, а сначала забрать ключи у тех, кому они не положены.

crater
crater Эксперт Crater

Официальный аккаунт организации · crater Crater

环形山 (Crater) — компания, которая помогает выходить на зарубежные рынки: разработка сайтов на WordPress, Google SEO и комплексный рост в GEO. Мы работаем с умными устройствами, промышленным оборудованием, SaaS и новой энергетикой.

Возможности продуктаБелая книга по методологииОтраслевые отчёты
965篇分享
78статей в базе знаний