Помогаем пользователям менять пароли с помощью well-known URL

Автор оригинала: Eiji Kitamura
Привет!

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

Установите редирект со страницы /.well-known/change-password на страницу смены пароля для вашего сайта. Благодаря этому, менеджеры паролей смогут направлять пользователей прямо на данную страницу.



Введение


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

Один из способов — обеспечить более эффективную поддержку менеджеров паролей.

Как нас могут выручить менеджеры паролей


Менеджеры паролей могут быть встроены в браузеры или использоваться как сторонние приложения. Какая от них польза?

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

Предотвращение фишинговых атак. Менеджеры паролей запоминают, где был указан пароль, поэтому его можно ввести автоматически только для соответствующих URL-адресов, а не на фишинговых сайтах.

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

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

Они определяют уязвимые пароли и предлагают их заменить. Менеджеры паролей могут обнаружить пароли, которые используются повторно, они способны анализировать их энтропию и слабость, а также выявляют потенциально уязвимые пароли или те, которые считаются небезопасными в таких источниках, как Have I Been Pwned.

Менеджер паролей может предупредить пользователя о проблемных паролях, но здесь скрывается много сложностей: нужно предложить пользователю перейти с главной страницы на страницу смены пароля, в дополнение к самому процессу смены пароля, который может варьироваться от сайта к сайту. Конечно, было бы намного проще, если бы менеджеры паролей могли перенаправить пользователя прямо на страницу смены пароля. Здесь представлены well-known URL-адреса для смены паролей, которые могут пригодиться в подобной ситуации.

Зарезервировав well-known URL-путь, который перенаправляет на страницу изменения пароля, сайт может легко доставить пользователей в нужное место, чтобы изменить их пароли.

Настройте well-known URL для смены паролей


Путь в адресе .well-known/change-password предлагается в качестве well-known URL для смены паролей. Все, что вам нужно сделать, — это настроить сервер так, чтобы он перенаправлял запросы для .well-known/change-password на URL-адрес смены пароля вашего сайта.

Например, предположим, что ваш веб-сайт example.com, а URL-адрес смены пароля example.com/settings/password. Необходимо настроить сервер на перенаправление запроса с example.com/.well-known/change-password на example.com/settings/password. И всё! Для перенаправления используйте код состояния HTTP 302 Found, 303 See Other или 307 Temporary Redirect.

Другой вариант: вы можете отдавать HTML по своему URL .well-known/change-password, используя тег <meta> с http-equiv=«refresh».

<meta http-equiv="refresh" content="0;url=https://example.com/settings/password">


Проверьте HTML страницы смены пароля


Цель этого этапа — сделать жизненный цикл пароля более гибким. Мы можем сделать 2 действия, чтобы пользователь без проблем обновил пароль:

  • Если для вашей формы изменения пароля требуется текущий пароль, добавьте autocomplete=«current-password» в тег <input>, чтобы менеджер паролей мог автоматически заполнить его.
  • Для поля нового пароля (во многих случаях даже два поля, чтобы пользователь точно ввел новый пароль правильно) добавьте autocomplete=«new-password» в тег <input>, чтобы помочь менеджеру паролей предложить сгенерированный пароль.

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

Как всё описанное используется в реальности


Примеры


Благодаря поддержке Apple Safari, /.well-known/change-password стал доступен на некоторых крупных сайтах:


Попробуйте заполнить форму регистрации там и сделайте то же самое для своего сайта!

Совместимость с браузером


Well-known URL-адрес для смены паролей поддерживается в Safari с 2019 года. Менеджер паролей Chrome поддерживает его, начиная с версии 86 (выпуск стабильной версии запланирован на конец октября 2020 года). Другие браузеры на основе Chromium могут тоже последовать этому примеру. Firefox считает, что менеджер паролей стоит внедрить, но пока нет информации когда именно.

Поведение менеджера паролей Chrome


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

Менеджер паролей Chrome способен проверить утечку паролей. При переходе на страницу chrome://settings/passwords, пользователи могут проверить соответствие паролей сохраненным и просмотреть список тех, которые рекомендуется обновить.



При выборе блока «Изменить пароль», рядом с паролем, который рекомендуется обновить, браузер выдаст:
  • Откройте страницу изменения пароля сайта, если /.well-known/change-password настроен правильно.
  • Откройте домашнюю страницу сайта, если /.well-known/change-password не настроен и Google не знает запасной вариант.


Обратная связь


Если у вас есть отзыв или предложение, создайте сообщение об ошибке в репозитории автора.

Полезные ресурсы



Фотография сделана Matthew Brodeur и размещена на сайте Unsplash
Timeweb
VDS, виртуальный хостинг, домены, серверы

Комментарии 7

    0

    Инициатива крутая, но в идеале бы, конечно, позволить менеджерам паролей автоматически обеновлять пароль с помощью POST-запроса или другого общепринятого API.

      +2
      Когда на кону доступ к аккаунту, причем пароль, возможно, единственный способ доступа(к примеру, без всяких там восстановлений паролей и прочего), пускай лучше пользователь сам видит что происходит. К тому же, было бы не дурным тоном, со стороны сервисов, во время смены пароля еще и двухфакторную авторизацию запрашивать, так что так и так лучше пользователю это дело поручить.
        0
        Со стороны пользователя, во время смены пароля, 2FA авторизацию запрашивать поздно. А вообще, когда у меня просят номер телефона для подтверждения закачки действия, я сразу (за исключением банков, которым мой номер известен из договора) посылаю нафиг.
          0
          Со стороны пользователя, во время смены пароля, 2FA авторизацию запрашивать поздно.

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

          смс подтверждение даже не считаю 2FA, учитывая как легко сторонний человек, не говоря уже о спец службах, может это дело перехватить.
            0
            2FA, в данном случае (как ни странно) выступает «секретное слово»
              0
              Firz, большое спасибо за комментарий!

              Согласны с Вами на 100%.
        0
        У меня куча аккузатив и постоянно пользуюсь менеджерами паролей.
        Чаще всего это занимает много лишнего времени. Интересная тема, попробую применять у себя в проектах.

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

        Самое читаемое