Подрядчик просит доступ к сайту — и вы даёте ему логин администратора, потому что так проще. Через месяц он заканчивает работу, а логин остаётся. Ещё через полгода кто-то заходит под ним и меняет реквизиты, ставит лишний плагин или просто ломает вёрстку. И виноватых нет: доступ был «свой». В 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 для этого есть и встроенные возможности, и понятные плагины.
Мы обычно выдаём доступ именно так: под задачу, с ограниченной ролью и сроком, а после сдачи закрываем и проверяем, что лишнего не осталось. Если у вас сейчас работает подрядчик и вы не уверены, какие у него права и что он может сделать, — это хороший повод проверить. Напишите или оставьте заявку: посмотрим настройки ролей и пользователей и скажем, что стоит поправить, чтобы сайт не зависел от чужого пароля.
