Безопасность
WordPress отдаёт список логинов любому желающему
По обычной ссылке, без пароля и без специальных инструментов, типовой сайт на WordPress называет логины своих администраторов. Проверяется это за десять секунд, а закрывается за десять минут.
Что мы измерили
Мы взяли 60 сайтов на WordPress из числа проверенных нами и запросили у каждого стандартный адрес со списком пользователей. Ответили 59, из них 37 отдали логины, то есть 63 процента.
Обычно виден один логин, максимум в корпусе шесть. У 46 процентов сайтов из тех, что отдали список, среди логинов оказался admin, administrator или root: то самое имя, которое любой перебор пробует первым.
Опрос сделан в августе 2026 одним обычным GET-запросом к публичному адресу, без подбора паролей и без попыток входа. Выборка не случайная: это сайты, которые проверяли мы, в основном малый и средний бизнес на WordPress и Битриксе. Цифры описывают этот корпус, а не весь рунет.
Как проверить свой сайт за десять секунд
Откройте в браузере два адреса, подставив свой домен.
По первому адресу вы увидите либо сообщение об отказе, либо список записей, в каждой из которых есть поле slug. Значение этого поля и есть логин для входа. Второй адрес работает иначе: он переадресует вас на страницу автора, и логин окажется прямо в адресной строке.
Если оба адреса ничего не выдали, эта статья вам не нужна. Проверьте тогда, что у вас не тормозит сервер, это встречается чаще.
Чем это плохо на самом деле
Отдельно взятый известный логин никого не пускает внутрь. Опасность в другом: он превращает подбор пароля из задачи с двумя неизвестными в задачу с одним.
- Перебор становится дешёвым. Вместо тысяч комбинаций логина и пароля перебирается только пароль, по известному имени.
- Утечка с другого сайта срабатывает на вашем. Люди повторяют пароли, и связка «известный логин плюс пароль из чужой утечки» это самый частый способ попасть внутрь.
- Нагрузка на сервер. Даже неудачный перебор это тысячи запросов к странице входа, и сайт от этого заметно тормозит.
- Целевые письма сотрудникам. Логины часто совпадают с именами и адресами почты, а это готовый список для писем от имени подрядчика.
Как закрыть
- Отключить выдачу пользователей неавторизованным в программном интерфейсе. Это делается плагином безопасности или несколькими строками в теме, и закрывать нужно именно список пользователей, а не интерфейс целиком.
- Отключить переход по номеру автора, чтобы адрес с параметром author перестал раскрывать логин.
- Развести логин и отображаемое имя. Логин служебный и не показывается, подпись под статьёй остаётся человеческой.
- Убрать логин admin. Создать нового администратора с другим именем, передать ему содержимое и удалить старого.
- Ограничить попытки входа и включить второй фактор для администраторов. Это защищает даже там, где логин всё-таки стал известен.
Порядок важен: сначала ограничение попыток входа и сложные пароли, потом закрытие списка. Наоборот бессмысленно, потому что логин можно узнать и другими способами, а пароль остаётся единственной настоящей преградой.
Что ещё лежит рядом
Открытый список логинов почти никогда не встречается один. На тех же сайтах мы регулярно находим доступные снаружи резервные копии и дампы базы, устаревшие версии PHP, страницы входа без ограничения попыток. Каждая находка по отдельности выглядит мелочью, а вместе они складываются в готовый сценарий.
Что делаем мы
Закрытие списка пользователей и перехода по номеру автора, ограничение попыток входа, проверка доступных снаружи файлов, обновление версии PHP. Это часть работ по исправлению технических ошибок, а целиком состояние сайта показывает аудит WordPress. Отдельной услуги здесь нет: находки входят в общий расчёт, и в отчёте видно, сколько стоит каждая. Пароли и доступы при этом остаются у вас, мы их не запрашиваем.
Источники и нормы
Собственные цифры выше получены замерами Фиксометра. Определения, пороги и правила сверены с первичными документами:
- WordPress Developer Resources: Users REST API. Официальное описание открытого маршрута пользователей и его параметров.
- WordPress Developer Resources: Hardening WordPress. Базовые меры защиты WordPress и принцип минимизации доступной информации.
Частые вопросы
Это уязвимость?
Сам по себе открытый список логинов сайт не взламывает. Это половина пары логин плюс пароль, которую обычно приходится угадывать. С готовым списком перебор идёт по одному известному имени, и защищает только сложность пароля.
Почему WordPress вообще это отдаёт?
Это штатное поведение программного интерфейса: по нему работают мобильные приложения и внешние сервисы. Список авторов считается публичными данными, ведь имена и так стоят под статьями. Проблема в том, что отдаётся не только отображаемое имя, но и логин для входа.
Достаточно ли просто сложного пароля?
Сложный пароль это главная защита, и без него всё остальное бессмысленно. Но перебор по известному логину нагружает сервер и заполняет журналы, а при утечке пароля с другого сайта известный логин экономит взломщику всю работу.
Не сломается ли что-нибудь, если закрыть список?
Закрывать надо не весь программный интерфейс, а только выдачу пользователей неавторизованным. Магазины, формы и приложения при этом продолжают работать. Проверять надо после включения, потому что часть плагинов ходит на сайт этим же способом.
Как понять, что нас уже перебирают?
По журналу сервера и по нагрузке: всплески запросов к странице входа, ночная нагрузка на процессор без роста посещаемости, письма о неудачных попытках входа. Плагин ограничения попыток входа показывает это прямо в админке.
Проверьте свой сайт
Бесплатная проверка смотрит это вместе с остальным: версией PHP, доступными снаружи архивами и дампами, настройками сервера. Отчёт покажет, что именно открыто, и объяснит, что с этим делать по порядку.