Роли WordPress: безопасный доступ подрядчика

Роли пользователей WordPress: как дать подрядчику безопасный доступ

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

Разберём, как выдать подрядчику ровно столько прав, сколько нужно для работы, и не больше.

Что вообще есть в WordPress по умолчанию

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

  • Администратор — может всё: менять тему, ставить плагины, редактировать файлы, удалять пользователей и сайт целиком.
  • Редактор — управляет чужими записями и страницами, может публиковать и удалять контент.
  • Автор — пишет и публикует свои материалы, загружает файлы.
  • Участник — пишет черновики, но не публикует.
  • Подписчик — только читает и редактирует свой профиль.

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

Почему админский доступ — плохая идея

Администратор в WordPress может установить любой плагин, в том числе с уязвимостью, и через него получить доступ к базе. Может отредактировать functions.php прямо в админке и сломать сайт одной строкой. Может выгрузить список пользователей. Может поменять пароль владельца и запереть его снаружи.

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

Как выдать только нужное

Есть несколько рабочих подходов, и их можно сочетать.

Плагин для управления ролями. Members, User Role Editor или аналоги позволяют создать новую роль и отметить в ней нужные возможности галочками. Например, «Разработчик»: может редактировать тему, плагины и настройки, но не может удалять пользователей, менять пароли и трогать настройки безопасности.

Плагин для временного доступа. Temporary Login Without Password и подобные создают ссылку для входа с ограниченным сроком действия — например, на 48 часов. Подрядчик заходит по ней, а через два дня доступ автоматически закрывается. Удобно для разовых задач, когда не хочется заводить постоянный аккаунт.

Доступ через SFTP или SSH. Если нужно поправить файлы темы, иногда проще дать доступ к серверу, а не к админке. Хостинг обычно позволяет создать отдельного пользователя с доступом только к нужной папке. Это аккуратнее, чем полный админ.

Staging-копия. Для крупных правок лучше делать тестовую копию сайта и работать на ней. Тогда даже если подрядчик что-то сломает, основной магазин не пострадает.

Что стоит запретить явно

Даже в урезанной роли есть возможности, которые лучше отключить отдельно. Например, редактирование файлов через встроенный редактор — в wp-config.php достаточно строки DISALLOW_FILE_EDIT, и эта опция исчезает для всех. Установка плагинов и тем — тоже отдельная возможность, её можно снять с роли.

Отдельно подумайте про экспорт данных и работу с пользователями. Если подрядчику не нужно управлять аккаунтами, снимите эти права. И проверьте, что у него нет доступа к настройкам безопасности, почты и платежей.

Договоритесь о правилах заранее

Технические ограничения работают лучше, если есть договорённость. Обсудите с подрядчиком, какие задачи он будет решать, понадобится ли ему админский доступ и на какой срок. Хорошая практика — выдавать доступ под конкретную задачу и закрывать после сдачи.

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

Что проверить после окончания работ

Когда подрядчик закончил, доступ нужно закрыть — а не «оставить на всякий случай». Пройдитесь по списку пользователей и убедитесь, что лишних аккаунтов нет. Проверьте, что роли соответствуют текущим задачам.

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

Красные флаги

  • Подрядчик просит именно администратора и отказывается от урезанной роли.
  • Доступ выдаётся бессрочно и не обсуждается.
  • Пароль передаётся в мессенджере обычным текстом.
  • Один аккаунт используется несколькими людьми из команды подрядчика.
  • После сдачи в списке пользователей появились незнакомые аккаунты.
  • В настройках отключена двухфакторная аутентификация «для удобства».

Один пункт — повод задать вопрос. Несколько — повод пересмотреть, кому и на каких условиях вы даёте доступ.

Что в итоге

Безопасный доступ подрядчика — это когда прав ровно столько, сколько нужно для задачи, и когда они закрываются сразу после сдачи. Несколько минут на настройку роли и временной доступ экономят нервы и деньги, если что-то пойдёт не так. И это совсем не сложно: в WordPress для этого есть и встроенные возможности, и понятные плагины.

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

 
Менджер ZM

Чем могу помочь?

Этот сайт собирает техническую информацию (куки), которая используется для обеспечения функционирования сайта, например, сохранение настроек пользователя, поддержка аутентификации, обеспечение безопасности и конфиденциальности данных. Данный тип файлов является обязательным и не подлежит отключению. Сайт запоминает выбор настроек куки на 1 год. По окончании этого периода Сайт повторно запросит Ваше согласие.
Узнать