Как правильно подойти к вопросу: basic авторизация на сайте через QR код на iOS все равно появляется окно для ввода логина и пароля. Почему так?

Ссылка скопирована
1 ответ

По вводным: сделан небольшой сайт для сотрудников. В качестве входа раздали QR, куда уже вшиты логины и пароли (ссылка видаПо вводным: htpps://логин:пароль@доменПо вводным:). На андроиде авторизация проходит нормально, но на айфонах все равно появляется окно для ввода логина и пароля.
Почему так?

Нужно решить такую задачу?

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

Заказать помощь
Лучший ответ
1
Никита Орлов Ответ

На iOS поведение с Basic Auth в URL вида https://login:password@example.com отличается от Android, потому что Safari/WebKit и многие iOS-приложения специально ограничивают или игнорируют передачу логина и пароля через URL. Это небезопасный и устаревший способ авторизации: такие ссылки могут попасть в историю, логи, скриншоты, рефереры и QR-коды.

Поэтому окно ввода логина/пароля на iPhone — ожидаемое поведение. iOS может не использовать userinfo-часть URL для автоматической авторизации или может очищать её при переходе из QR-сканера/камеры.

Правильнее сделать один из вариантов:

  • нормальную форму входа с HTTPS и cookie-сессией;
  • одноразовые magic links с токеном и сроком жизни;
  • QR-код с одноразовым invite token, а не с паролем;
  • SSO/LDAP/OAuth, если это внутренний сайт для сотрудников.

Пример безопасной логики для QR:

QR -> https://site.ru/login/invite/одноразовый-токен
сервер проверяет токен
создаёт сессию
помечает токен использованным
перенаправляет в личный кабинет

QR -> https://site.ru/login/invite/одноразовый-токен сервер проверяет токен создаёт сессию помечает токен использованным перенаправляет в личный кабинет

Если оставить Basic Auth, то нужно принять, что на iOS пользователь может видеть системное окно. Обойти это надёжно и одинаково для всех устройств нельзя. Плюс QR с логином и паролем — плохая практика для сотрудников: такой код легко сфотографировать и использовать повторно.

Итог: проблема не в вашем QR, а в ограничениях iOS и небезопасности формата login:password@host. Для рабочего сайта лучше заменить это на одноразовый токен или обычную авторизацию с сессией.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно