Остерегайтесь разрешения на администрирование пользователей в Drupal | Cocomore - Агентство по маркетингу, IT и дизайну опыта

  1. Как разрешить пользователю создавать других пользователей? Это довольно распространенный вариант...
  2. Короче говоря: остерегайтесь предоставления чрезмерных разрешений
  3. Надежды на будущее Drupal
Как разрешить пользователю создавать других пользователей?

Это довольно распространенный вариант использования, который требует роли пользователя без прав администратора, который может создавать других пользователей для сайта Drupal, и я часто видел вопросы о том, как наилучшим образом реализовать это. Недавно я также увидел предложение просто создать роль с разрешением «Администрирование пользователей». На первый взгляд это может показаться эффективным; если это единственное разрешение на «администрирование», которое у них есть, пользователи с этой ролью могут создавать только базовых пользователей с ролью «Аутентифицированный пользователь», они не могут редактировать пользователя для добавления каких-либо других ролей или напрямую обновлять свою собственную роль. В ограниченных ситуациях это может быть даже уместно.

Однако, что может быть неочевидным, так это то, что пользователь с таким разрешением может редактировать учетную запись любого другого пользователя… и я имею в виду любую . Это означает, что если его намерения не являются чистыми, пользователь с этой ролью может легко изменить пароль (или любые другие поля) для более привилегированного пользователя, даже пользователя / 1, и затем войти в эту учетную запись. После того, как они это сделали, действительно нет предела тому, что они могут сделать с вашим сайтом. Даже если у них нет средств для добавления модулей, которые могут быть использованы для особенно гнусных целей, если у вас есть такой модуль, как Резервное копирование и миграция доступны, они могут загрузить вашу базу данных со всеми конфиденциальными данными пользователя; и даже если этот модуль для них недоступен, скорее всего, у вас есть Просмотры , которые они также могут использовать для сбора всех адресов электронной почты пользователей или других полей личных данных. И тогда они могли бы легко скрыть свои следы. Если они не делают ничего очевидного (например, портят ваш сайт или начинают рассылать спам с него) и меняют только пароль в учетной записи администратора, вы можете быть озадачены тем, почему вы не можете войти в систему со своим обычным паролем, и следовать обычному Процедура сброса забытого пароля, а затем забыть все об этом. Между тем, ваш «пользователь-модератор» собрал много конфиденциальных данных с вашего сайта и все еще имеет возможность сделать это снова однажды.

Для этого есть модуль (или несколько)!

В зависимости от вашего фактического варианта использования, который может включать в себя требования немного более сложные, чем просто создание базового «Прошедшего проверку», существует ряд модулей, которые могут быть полезны для роли «модератор пользователя». Некоторые из этих модулей ничего не делают с фактическим созданием пользователей, в конце концов, вероятно, большинство сайтов Drupal позволяют пользователям просто регистрироваться, но имеют дело с соответствующей необходимостью делегировать ответственность за предоставление некоторым пользователям дополнительных ролей помимо роли «Аутентифицированный пользователь». Но для сайтов, которые не предоставляют самостоятельную регистрацию, есть пара модулей, которые позволяют не-администраторам создавать новых пользователей.

  • Ролевая Делегация Это один из самых популярных таких модулей, который используется более чем 8000 сайтов со стабильными выпусками как для Drupal 6, так и для Drupal 7, но он ограничен назначением ролей и не позволяет пользователям без дополнительных разрешений создавать новых пользователей.
  • Администрирование пользователей по роли имеет стабильные выпуски для Drupal 5 и Drupal 6 и позволяет пользователям определенной роли создавать, редактировать и удалять других пользователей. Теоретически, оно должно предоставлять ограничения для разрешения «администрировать пользователей», позволяя им администрировать пользователей с выбранными вами ролями. Версии для Drupal 7 пока нет, но порт находится в процессе. Это довольно популярный модуль с около 2500 пользователей.
  • RoleAssign является модулем со стабильным релизом для Drupal 6 и «кандидатом на релиз» для Drupal 7 и используется примерно 2800 сайтами. Это позволяет пользователям с соответствующими разрешениями назначать предопределенные роли другим пользователям.
  • Subuser это модуль, доступный для Drupal 6 (стабильный) и Drupal 7 (в настоящее время в -alpha2). Это, пожалуй, самый продвинутый и интересный из этих модулей, хотя он не используется большинством сайтов (в настоящее время только 282 сайта). Это позволяет пользователю получить разрешение на создание пользователей, которыми затем он может управлять. Пользователи, не созданные этим «родительским» пользователем, недоступны для управления. «Дочерним» пользователям могут быть назначены любые роли, которые «родительскому» разрешено назначать, а назначение ролей может быть автоматическим. Другими словами, «редактор» может создавать пользователей «автор» или основной «модератор сайта» может создавать пользователей «модератор форума» и т. Д. Я думаю, что этот модуль многообещающий, особенно потому, что он написан и поддерживается очень почитаемый boombatower , настоящая «Drupal rockstar».
  • Создатель пользователя это модуль, который не будет портирован на Drupal 7 (они предлагают использовать вышеупомянутый модуль Subuser). Это позволяет пользователям с определенными ролями создавать других пользователей с определенными ограничениями ролей. В качестве примера приводится, что для школьного веб-сайта «Директор» может создавать других пользователей с ролями «Учитель» или «Ученик», а Учитель может создавать только учетные записи «Ученик». Администраторы сайта могут определить, для каких ролей разрешено создавать учетные записи, для каких других ролей.
  • Контроль доступа к настройкам пользователя является модулем, который стремится увеличить степень детализации для разрешения «администрировать пользователей», чтобы пользовательские настройки и администрирование пользователей были разделены в соответствии с этим разрешением, и администратор сайта может назначить только часть этого разрешения. Он имеет «стабильный» выпуск для Drupal 6 и снимок разработки для Drupal 7.
Короче говоря: остерегайтесь предоставления чрезмерных разрешений

Будьте очень осторожны (и вообще избегайте) предоставления любых разрешений «администрировать» пользователям без прав администратора. Эта статья должна прояснить, что разрешение «администрировать пользователей» может привести к катастрофическим результатам, если оно предоставлено не тому пользователю. Хотя это может быть даже целесообразным, чтобы дать это разрешение очень доверенному «помощнику администратора» (например, если вы хотите скрыть некоторую сложность администрирования Drupal от вашего партнера - поэтому вы хотите дать ему некоторые разрешения администратора - чтобы избежать их перегрузки полный интерфейс администратора), вы должны абсолютно доверять такому пользователю, чтобы он ничего не делал, чтобы злоупотреблять властью. И затем, вероятно, все же лучше использовать один из соответствующих модулей, на случай, если вы забудете и предоставите ту же роль кому-то, кому доверяете меньше, чем вашему партнеру, просто чтобы этот другой человек мог добавить несколько новых учетных записей пользователей.

Надежды на будущее Drupal

На мой взгляд, что-то вроде модулей Subuser вполне может быть частью ядра Drupal. Почти нет причин для того, чтобы любой пользователь, не являющийся администратором, был наделен всеми правами «администрирования пользователей», но есть много причин, по которым вы можете захотеть разрешить роль, которая может по крайней мере создавать пользователей и обеспечивать ограниченное управление другими пользователями ( с меньшими разрешениями, чем их собственные). Я считаю, что некоторая степень этой функциональности была бы полезна для включения в ядро ​​Drupal, и надеюсь увидеть это в будущем.

Как разрешить пользователю создавать других пользователей?