Однажды к нам обратился владелец небольшой компании: со страниц сайта пропали все цены, а в блоге появилась странная запись. Взлома не было. Просто у всех шестерых сотрудников и двух внешних подрядчиков были права администратора, и кто-то из них «немного поправил» страницы. Найти виновника не удалось — работали под общими логинами. Эта история хорошо показывает, зачем в WordPress существуют роли пользователей и почему их стоит настроить сразу, а не после первой неприятности.
Как устроена система ролей
В WordPress доступ построен на двух понятиях: роли и возможности. Возможность — это конкретное право, например «публиковать записи», «редактировать чужие страницы», «устанавливать плагины». Роль — это набор возможностей, который присваивается пользователю. У каждого пользователя есть одна основная роль, и от неё зависит, какие разделы админки он увидит и что сможет сделать.
Такая схема позволяет выдавать ровно те права, которые нужны для работы, и не больше. Это принцип минимальных привилегий, на котором строится безопасность любой информационной системы.
Стандартные роли: кто что может
В стандартной установке есть пять ролей. Для магазина WooCommerce добавляет ещё две. Сведём их в таблицу.
| Роль | Основные права | Кому подходит |
|---|---|---|
| Администратор | Всё: настройки, плагины, темы, пользователи, любой контент | Одному-двум ответственным лицам |
| Редактор | Создание, редактирование и публикация любых записей и страниц, модерация комментариев | Контент-менеджеру, главному редактору |
| Автор | Создание и публикация только своих записей, загрузка файлов | Постоянному автору блога |
| Участник | Создание своих записей без права публикации | Внешнему автору, стажёру |
| Подписчик | Только собственный профиль | Зарегистрированным посетителям |
| Менеджер магазина | Товары, заказы, отчёты, настройки WooCommerce | Сотруднику, который ведёт магазин |
| Покупатель | Личный кабинет, история заказов | Клиентам магазина |
Обратите внимание: редактор может публиковать и менять любые страницы, включая главную и страницы услуг, но не может устанавливать плагины и менять настройки. Для подавляющего большинства сотрудников, работающих с контентом, этого достаточно.
Типичная схема для корпоративного сайта
Вот как мы обычно распределяем доступы на сайтах клиентов. Схему можно взять за основу и адаптировать под свою команду.
- Владелец бизнеса или ответственный руководитель — администратор. Пользуется учётной записью редко, но доступ к ней не теряет.
- Подрядчик по технической поддержке — отдельная учётная запись администратора, привязанная к рабочей почте подрядчика. Её можно отключить в любой момент при смене исполнителя.
- Контент-менеджер или маркетолог — редактор. Публикует новости, правит страницы услуг, загружает изображения.
- Эксперты, которые пишут статьи — авторы или участники. Участник отправляет текст на проверку, редактор его выпускает.
- SEO-специалист — редактор, иногда с дополнительными правами на настройки SEO-плагина.
- Менеджер магазина — роль менеджера магазина, без доступа к плагинам и темам.
Совет от студии: никогда не создавайте общих учётных записей вида «office» или «manager», которыми пользуются несколько человек. Каждому сотруднику — собственный логин на рабочую почту. Только так можно понять, кто что изменил, и закрыть доступ уволившемуся сотруднику, не меняя пароль всем остальным.
Когда стандартных ролей не хватает
Иногда нужна роль «между» стандартными. Например, контент-менеджеру нужно редактировать меню и виджеты, но не трогать плагины. Или менеджеру по продажам нужно видеть заявки из форм, но не иметь доступа к страницам. Есть два способа решить такие задачи.
Плагин управления ролями
Позволяет в визуальном интерфейсе создать новую роль, скопировав существующую, и добавить или убрать отдельные возможности. Это быстрый путь, но изменения нужно документировать, иначе через год никто не вспомнит, почему у редактора есть доступ к настройкам.
Роль в коде
Разработчик регистрирует роль в коде дочерней темы или небольшого служебного плагина. Такой подход прозрачнее: роль описана в одном месте, её легко перенести на копию сайта и проверить.
В любом случае не меняйте возможности стандартной роли администратора и не урезайте её. Это легко приводит к ситуации, когда никто не может зайти в настройки.
Безопасность учётных записей
Роли защищают от ошибок сотрудников, но учётные записи сами по себе — частая цель атак. Минимальный набор мер:
- двухфакторная аутентификация обязательна для администраторов и желательна для редакторов;
- длинные уникальные пароли, хранящиеся в менеджере паролей;
- логины, которые не совпадают с отображаемым именем автора на сайте;
- ограничение попыток входа;
- журнал действий пользователей, чтобы видеть, кто и когда вносил изменения;
- регулярная проверка списка пользователей: нет ли незнакомых учётных записей с высокими правами.
Последний пункт особенно важен. Незнакомый администратор, появившийся в списке пользователей, — частый признак взлома. Если вы обнаружили такого, это повод не просто удалить его, а проверить сайт целиком: злоумышленник мог оставить и другие лазейки. С этим помогают наши специалисты по лечению сайтов.
Порядок при смене сотрудников и подрядчиков
Люди приходят и уходят, и это момент, когда чаще всего остаются «висящие» доступы. Заведите простой регламент.
- При уходе сотрудника не удаляйте его учётную запись сразу, если у него есть опубликованные материалы. Смените роль на «Подписчик» или переназначьте записи другому автору при удалении.
- Смените пароли от общих сервисов, к которым у него был доступ: хостинг, почта, аналитика.
- При смене подрядчика отключите его учётные записи в WordPress, на хостинге и в FTP, удалите его SSH-ключи, если они были.
- Проверьте, не были ли установлены «служебные» плагины или созданы дополнительные администраторы.
Если вы принимаете сайт от предыдущего разработчика и не уверены, какие доступы у него остались, имеет смысл провести аудит. Это одна из стандартных задач при администрировании сайтов, которые к нам переходят.
Регистрация посетителей: включать или нет
В настройках WordPress есть опция «Любой может зарегистрироваться» и выбор роли для новых пользователей. Если на сайте нет личного кабинета, магазина или закрытых материалов, регистрацию лучше отключить: она привлекает ботов, которые создают тысячи пустых аккаунтов. Если регистрация нужна, роль по умолчанию должна быть «Подписчик» или «Покупатель» и ни в коем случае не выше. Нам встречались сайты, где по ошибке новым пользователям выдавалась роль автора, и через неделю блог был заполнен спамом.
Доступ для разработчика: временно и по делу
Когда внешнему специалисту нужно что-то сделать на сайте разово, например настроить форму или проверить ошибку, не обязательно выдавать ему постоянного администратора. Создайте учётную запись под конкретную задачу, а по её завершении отключите. Существуют плагины, которые выдают временный доступ по ссылке с автоматическим сроком действия. А если работа ведётся на тестовой копии, доступ к рабочему сайту не нужен вовсе.
Главное
Роли WordPress — простой и надёжный инструмент, который защищает сайт от ошибок сотрудников и упрощает контроль. Администраторов должно быть минимум, контентом занимаются редакторы и авторы, магазином — менеджер магазина, у каждого человека своя учётная запись. Включите двухфакторную аутентификацию, журнал действий, регулярно проверяйте список пользователей и закрывайте доступы при смене команды. Полчаса на настройку ролей экономят часы на разбирательства и восстановление сайта после чьей-то случайной правки.