Вход на сайт при помощи Telegram

в 7:26, , рубрики: telegram bots, Анализ и проектирование систем, Разработка веб-сайтов

На сегодняшний день в интернете практически все сайты используют древнюю и проверенную временем схему регистрации/авторизации по email. Такая схема всегда отлично работала и продолжает работать по сей день, но она делает пользователя интернета зависимым от почтовых сервисов, и на мой взгляд, имеет ряд недостатков.

Удобство

  • Как правило, сейчас каждый пользователь интернета имеет несколько email адресов (личный, рабочий, тот который он забыл и т.д). Желательно что бы у всех адресов были разные пароли от 8 символов. Со временем, пароли забываются, особенно когда пароль сохранен в браузере и при входе в почту он заполняется автоматически.
  • Думаю многие сталкивались с ситуацией, когда, зайдя на какой-нибудь ресурс, для получения необходимой информации, нужно было пройти унизительную процедуру регистрации и подтвердить свой email, зайдя в свою почту, и нажать на страшную ссылку, состоящую из непонятных символов. После этого, в ящик начинает сыпаться всякий хлам в виде подписки, на которую вы дали согласие при регистрации, а может даже и обычный спам.
  • На каждом ресурсе так же желательно использовать разные пароли. В случае когда пользователь не может зайти на свой любимый ресурс, приходится выполнять очередную процедуру по восстановлению пароля: заходить в почту (вспоминать пароль от почты, если вход происходит, например, с рабочего места) искать письмо, ходить по ссылкам восстановленияподтверждения, и опять придумывать новый пароль для сайта. Который потом опять будет успешно забыт.
  • Почтовый ящик превращается в свалку уведомлений, акций, предложений, прочей рекламы с ресурсов, на которых вы зарегистрированы. Среди этого можно не заметить важного письма, например. Да это даже просто отвлекает!

Безопасность

  • Безответственный подход к использованию почтовым ящиком может стать причиной утечки пароля от него.
  • Фишинговые письма могут стать причиной утечки пароля от ресурса, под который замаскировано гнилое письмо
  • email — это как паспорт в интернете: по нему можно собрать определенную информацию из открытых источников и использовать ее в разных целях.
  • Получив доступ к email, можно получить доступ ко всем ресурсам, на которых сидит пользователь и к другим email адресам
  • Почтовые сервисы и рекламные компании знают о вашей жизни все

К сожалению, нет такой же популярной, простой и удобной альтернативы, как с точки зрения внедрения, так и с точки зрения использования. Есть всякие «технологии открытого входа», они несколько удобнее, но они тоже требуют email адрес, и так же имеют ряд недостатков!

Ближе к делу

Как альтернативу /дополнение этому старейшему способу, я хочу предложить взглянуть на способ авторизации с помощью современных мессенджеров. Регистрация в том виде, котором она используется везде, в принципе исчезает.

На текущий момент под эту задачу по всем параметрам подходит Telegram. Но и не только он. С таким же успехом можно сделать бота и для других мессенджеров. Схема очень проста!

Пользователь, зайдя на сайт, на котором у него нет аккаунта, должен будет добавить в свой Telegram бота этого сайта и запросить у него доступ(например нажав на кнопку «Дай мне пароль») Для тех, кто не пользуется Telegram и не понимает, о какой кнопке идет речь, прикладываю скрин:

image

В качестве примера, я реализовал схему с одноразовым паролем, которая выглядит следующим образом:

Бот генерирует одноразовый пароль для входа по вашему запросу.

Чтобы войти на сайт, надо заполнить всего одно поле — «пароль»

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

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

Удобство такого подхода заключается еще в том, что Telegram доступен на всех платформах, и искать бота не нужно, достаточно просто пройти по ссылке, которая указана на форме авторизации. Как это выглядит в живую можно посмотреть тут: https://x07.herokuapp.com/login

Эту схему, конечно же, можно сделать более практичной, надежной и безопасной.

Для усиления безопасности и укорачивания паролей, можно сделать бота немного умнее, и в случае если бот что-то заподозрит, он попросит прислать ему вашу локацию (Telegram это поддерживает), а далее в бекенде будет произведен анализ того что вы прислали и откуда происходит вход на сайт.

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

Плюс ко всему, можно также добавить имя, которое используется в Telegram'е или любые другие поля на ваше усмотрение, хоть тот же email.

В качестве защиты от простого перебора паролей, можно не прикручивать капчу (которую не возможно разобрать), как это сделано на большинстве сайтов, а научить бота, что бы тот присылал вам уведомление с просьбой подтвердить вход.

Придумать тут можно огромное количество вариантов реализации.

Плюсы такого подхода:

  • Не нужно проходить долгую и унизительную процедуру регистрации на сайте, а потом лезть в почтовый ящик и искать там письмо либо с паролем либо со ссылкой на подтверждение регистрации.
  • Не нужно помнить пароль, пароль всегда генерируется новый по запросу!
  • Безопаснее чем электронная почта!
  • Telegram активно развивается и стабильно работает!
  • Пароль невозможно украсть, не завладев мобильным телефоном
  • Доступ к Telegram через веб также сложно получить, как к мобиле пользователя
  • Telegram доступен на всех платформах
  • С помощью этого подхода ваш сайт становится более доступным пользователям
  • Для ресурсов, которые требуют ваш номер телефона с целью повысить защиту от фековых аккаунтов, не нужно будет вводить номер телефона, так как Telegram уже привязан к номеру мобильного телефона. Некоторых людей отпугивает регистрация по мобильному телефону
  • Ваш номер телефона остается всегда в тайне и не доступен владельцам сайта

Минусы, куда же без них…

  • Через ботов тоже можно слать спам
  • Что происходит на серверах Telegram неизвестно, там так же может производится сбор и анализ ваших данных (может это не минус)
  • При большом количестве пользователей возрастет нагрузка на сервер где будет жить бот
  • В какой-то мере появляется зависимость от Telegram
  • Telegram может поменять или расширить свой API, что может позволить сайтам извлечь больше информации о вас, или наоборот сделать эту схему не жизнеспособной

Что вы об этом думаете? Будете ли вы внедрять в своих проектах такой способ авторизации?

Автор: x07

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js