На сегодняшний день в интернете практически все сайты используют древнюю и проверенную временем схему регистрации/авторизации по email. Такая схема всегда отлично работала и продолжает работать по сей день, но она делает пользователя интернета зависимым от почтовых сервисов, и на мой взгляд, имеет ряд недостатков.
Удобство
- Как правило, сейчас каждый пользователь интернета имеет несколько email адресов (личный, рабочий, тот который он забыл и т.д). Желательно что бы у всех адресов были разные пароли от 8 символов. Со временем, пароли забываются, особенно когда пароль сохранен в браузере и при входе в почту он заполняется автоматически.
- Думаю многие сталкивались с ситуацией, когда, зайдя на какой-нибудь ресурс, для получения необходимой информации, нужно было пройти унизительную процедуру регистрации и подтвердить свой email, зайдя в свою почту, и нажать на страшную ссылку, состоящую из непонятных символов. После этого, в ящик начинает сыпаться всякий хлам в виде подписки, на которую вы дали согласие при регистрации, а может даже и обычный спам.
- На каждом ресурсе так же желательно использовать разные пароли. В случае когда пользователь не может зайти на свой любимый ресурс, приходится выполнять очередную процедуру по восстановлению пароля: заходить в почту (вспоминать пароль от почты, если вход происходит, например, с рабочего места) искать письмо, ходить по ссылкам восстановленияподтверждения, и опять придумывать новый пароль для сайта. Который потом опять будет успешно забыт.
- Почтовый ящик превращается в свалку уведомлений, акций, предложений, прочей рекламы с ресурсов, на которых вы зарегистрированы. Среди этого можно не заметить важного письма, например. Да это даже просто отвлекает!
Безопасность
- Безответственный подход к использованию почтовым ящиком может стать причиной утечки пароля от него.
- Фишинговые письма могут стать причиной утечки пароля от ресурса, под который замаскировано гнилое письмо
- email — это как паспорт в интернете: по нему можно собрать определенную информацию из открытых источников и использовать ее в разных целях.
- Получив доступ к email, можно получить доступ ко всем ресурсам, на которых сидит пользователь и к другим email адресам
- Почтовые сервисы и рекламные компании знают о вашей жизни все
К сожалению, нет такой же популярной, простой и удобной альтернативы, как с точки зрения внедрения, так и с точки зрения использования. Есть всякие «технологии открытого входа», они несколько удобнее, но они тоже требуют email адрес, и так же имеют ряд недостатков!
Ближе к делу
Как альтернативу /дополнение этому старейшему способу, я хочу предложить взглянуть на способ авторизации с помощью современных мессенджеров. Регистрация в том виде, котором она используется везде, в принципе исчезает.
На текущий момент под эту задачу по всем параметрам подходит Telegram. Но и не только он. С таким же успехом можно сделать бота и для других мессенджеров. Схема очень проста!
Пользователь, зайдя на сайт, на котором у него нет аккаунта, должен будет добавить в свой Telegram бота этого сайта и запросить у него доступ(например нажав на кнопку «Дай мне пароль») Для тех, кто не пользуется Telegram и не понимает, о какой кнопке идет речь, прикладываю скрин:
В качестве примера, я реализовал схему с одноразовым паролем, которая выглядит следующим образом:
Бот генерирует одноразовый пароль для входа по вашему запросу.
Чтобы войти на сайт, надо заполнить всего одно поле — «пароль»
В этой схеме генерируемый пароль всегда будет уникален и будет принадлежать только одному пользователю Telegram'а, так же пароль будет действителен ограниченное время, а после входа будет уничтожен.
Используя такую схему, нам не нужно ждать письма и проходить процедуру регистрации. Так же не нужно помнить никаких паролей. Нам всегда его напомнит заботливый бот.
Удобство такого подхода заключается еще в том, что Telegram доступен на всех платформах, и искать бота не нужно, достаточно просто пройти по ссылке, которая указана на форме авторизации. Как это выглядит в живую можно посмотреть тут: https://x07.herokuapp.com/login
Эту схему, конечно же, можно сделать более практичной, надежной и безопасной.
Для усиления безопасности и укорачивания паролей, можно сделать бота немного умнее, и в случае если бот что-то заподозрит, он попросит прислать ему вашу локацию (Telegram это поддерживает), а далее в бекенде будет произведен анализ того что вы прислали и откуда происходит вход на сайт.
На случай, если не окажется под рукой Telegram'а, или вдруг Telegram будет не доступен, или вы просто не хотите каждый раз туда лезть, то в БД можно сделать поле с постоянным паролем, по которому можно будет войти всегда. При этом заботливого бота можно научить оповещать вас о любом входе на сайт, если вы не запрашивали у него пароль.
Плюс ко всему, можно также добавить имя, которое используется в Telegram'е или любые другие поля на ваше усмотрение, хоть тот же email.
В качестве защиты от простого перебора паролей, можно не прикручивать капчу (которую не возможно разобрать), как это сделано на большинстве сайтов, а научить бота, что бы тот присылал вам уведомление с просьбой подтвердить вход.
Придумать тут можно огромное количество вариантов реализации.
Плюсы такого подхода:
- Не нужно проходить долгую и унизительную процедуру регистрации на сайте, а потом лезть в почтовый ящик и искать там письмо либо с паролем либо со ссылкой на подтверждение регистрации.
- Не нужно помнить пароль, пароль всегда генерируется новый по запросу!
- Безопаснее чем электронная почта!
- Telegram активно развивается и стабильно работает!
- Пароль невозможно украсть, не завладев мобильным телефоном
- Доступ к Telegram через веб также сложно получить, как к мобиле пользователя
- Telegram доступен на всех платформах
- С помощью этого подхода ваш сайт становится более доступным пользователям
- Для ресурсов, которые требуют ваш номер телефона с целью повысить защиту от фековых аккаунтов, не нужно будет вводить номер телефона, так как Telegram уже привязан к номеру мобильного телефона. Некоторых людей отпугивает регистрация по мобильному телефону
- Ваш номер телефона остается всегда в тайне и не доступен владельцам сайта
Минусы, куда же без них…
- Через ботов тоже можно слать спам
- Что происходит на серверах Telegram неизвестно, там так же может производится сбор и анализ ваших данных (может это не минус)
- При большом количестве пользователей возрастет нагрузка на сервер где будет жить бот
- В какой-то мере появляется зависимость от Telegram
- Telegram может поменять или расширить свой API, что может позволить сайтам извлечь больше информации о вас, или наоборот сделать эту схему не жизнеспособной
Что вы об этом думаете? Будете ли вы внедрять в своих проектах такой способ авторизации?
Автор: x07