Безопасность

WordPress отдаёт список логинов любому желающему

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

Без регистрации и доступов к сайту. Замер занимает около минуты.

Что мы измерили

Мы взяли 60 сайтов на WordPress из числа проверенных нами и запросили у каждого стандартный адрес со списком пользователей. Ответили 59, из них 37 отдали логины, то есть 63 процента.

Список логинов открыт наружу 37 из 5963%
Список закрыт 22 из 5937%

Обычно виден один логин, максимум в корпусе шесть. У 46 процентов сайтов из тех, что отдали список, среди логинов оказался admin, administrator или root: то самое имя, которое любой перебор пробует первым.

Опрос сделан в августе 2026 одним обычным GET-запросом к публичному адресу, без подбора паролей и без попыток входа. Выборка не случайная: это сайты, которые проверяли мы, в основном малый и средний бизнес на WordPress и Битриксе. Цифры описывают этот корпус, а не весь рунет.

Как проверить свой сайт за десять секунд

Откройте в браузере два адреса, подставив свой домен.

https://example.com/wp-json/wp/v2/users https://example.com/?author=1

По первому адресу вы увидите либо сообщение об отказе, либо список записей, в каждой из которых есть поле slug. Значение этого поля и есть логин для входа. Второй адрес работает иначе: он переадресует вас на страницу автора, и логин окажется прямо в адресной строке.

Если оба адреса ничего не выдали, эта статья вам не нужна. Проверьте тогда, что у вас не тормозит сервер, это встречается чаще.

Чем это плохо на самом деле

Отдельно взятый известный логин никого не пускает внутрь. Опасность в другом: он превращает подбор пароля из задачи с двумя неизвестными в задачу с одним.

  • Перебор становится дешёвым. Вместо тысяч комбинаций логина и пароля перебирается только пароль, по известному имени.
  • Утечка с другого сайта срабатывает на вашем. Люди повторяют пароли, и связка «известный логин плюс пароль из чужой утечки» это самый частый способ попасть внутрь.
  • Нагрузка на сервер. Даже неудачный перебор это тысячи запросов к странице входа, и сайт от этого заметно тормозит.
  • Целевые письма сотрудникам. Логины часто совпадают с именами и адресами почты, а это готовый список для писем от имени подрядчика.

Как закрыть

  • Отключить выдачу пользователей неавторизованным в программном интерфейсе. Это делается плагином безопасности или несколькими строками в теме, и закрывать нужно именно список пользователей, а не интерфейс целиком.
  • Отключить переход по номеру автора, чтобы адрес с параметром author перестал раскрывать логин.
  • Развести логин и отображаемое имя. Логин служебный и не показывается, подпись под статьёй остаётся человеческой.
  • Убрать логин admin. Создать нового администратора с другим именем, передать ему содержимое и удалить старого.
  • Ограничить попытки входа и включить второй фактор для администраторов. Это защищает даже там, где логин всё-таки стал известен.

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

Что ещё лежит рядом

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

Что делаем мы

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

Источники и нормы

Собственные цифры выше получены замерами Фиксометра. Определения, пороги и правила сверены с первичными документами:

Частые вопросы

Это уязвимость?

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

Почему WordPress вообще это отдаёт?

Это штатное поведение программного интерфейса: по нему работают мобильные приложения и внешние сервисы. Список авторов считается публичными данными, ведь имена и так стоят под статьями. Проблема в том, что отдаётся не только отображаемое имя, но и логин для входа.

Достаточно ли просто сложного пароля?

Сложный пароль это главная защита, и без него всё остальное бессмысленно. Но перебор по известному логину нагружает сервер и заполняет журналы, а при утечке пароля с другого сайта известный логин экономит взломщику всю работу.

Не сломается ли что-нибудь, если закрыть список?

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

Как понять, что нас уже перебирают?

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

Проверьте свой сайт

Бесплатная проверка смотрит это вместе с остальным: версией PHP, доступными снаружи архивами и дампами, настройками сервера. Отчёт покажет, что именно открыто, и объяснит, что с этим делать по порядку.

Без регистрации и доступов к сайту. Замер занимает около минуты.