Разрешить администраторам всегда редактировать электронные письма, даже если опция «Редактировать письмо после регистрации» отключена

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

Трение — это функция безопасности!

Таким образом, неудобство необходимости использовать консоль Rails или переключать настройку на весь сайт на самом деле является критически важной функцией безопасности, поскольку это действует как «тормоз безопасности» и вынуждает администратора выполнять намеренный процесс с высоким уровнем трения для очень чувствительной операции.

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

Основные векторы атак, которые предотвращает это трение:

  • Компрометация аккаунтов администраторов! — это самый значительный риск. Если злоумышленник получает доступ к аккаунту администратора (через фишинг, повторное использование паролей и т. д.), простая кнопка или переключатель в интерфейсе позволили бы им незаметно и легко захватить любой другой аккаунт пользователя, включая аккаунты других сотрудников; требование доступа к оболочке через консоль Rails обеспечивает мощный уровень защиты.

  • Социальная инженерия! — это открывает двери для социальной инженерии. Злонамеренный пользователь может выдать себя за легитимного пользователя и убедить администратора изменить для него адрес электронной почты; опять же, текущий процесс с высоким уровнем трения заставляет администратора гораздо более тщательно проверять или рассматривать подлинность запроса.

  • Угроза изнутри — злонамеренный администратор может злоупотребить этой функцией для захвата аккаунтов.

Для таких редких, но высокорисковых административных действий консоль Rails подходит, потому что она гарантирует, что лицо, выполняющее действие, имеет доступ к серверу, а не к скомпрометированной сессии. Кроме того, действие является намеренным, требует конкретных технических знаний (и фиксируется в истории командной оболочки).

1 лайк