Запретить браузеру пытаться перейти на неизвестную схему URL - PullRequest
1 голос
/ 29 марта 2019

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

URL-адрес в следующем формате:

bankid:///?autostarttoken=2a1b5e2c-c9fb-4402-1239-2a1619d655e9&redirect=null

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

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

Почему они это делают?

Нужно ли использовать скрытую форму?

Будет ли это уважать каждое мобильное подразделение?

1 Ответ

1 голос
/ 30 марта 2019

Пользовательская схема URL используется для возможности запуска приложения локально, в этом случае клиент BankID, который обрабатывает 2FA.

Это прекрасно работает как на мобильном, так и на настольном компьютере, если пользовательская схема URL зарегистрирована. AFAIK для мобильных устройств: если схема URL-адреса не зарегистрирована локально, она отправит запрос в магазин приложений и позволит пользователю выполнить установку оттуда. BankID доступен для iPhone и Android в магазине приложений. В Windows он также запрашивает магазин приложений, но клиент BankID недоступен в качестве приложения Windows, поэтому его необходимо установить вручную с https://install.bankid.com.. На Mac я понятия не имею, запрашивает ли он магазин приложений, но я его знаю должен быть установлен вручную от https://install.bankid.com

Android, iPhone, Windows Phone, Windows Mobile, Windows XP и более поздние версии, MacOSX - все использует пользовательскую схему URL, но она также должна учитываться браузером, что и все основные браузеры.

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

Именно поэтому используются пользовательские схемы URL.

Как вы можете прочитать в Руководящих принципах проверяющей стороны BankID , существует переход к использованию https://app.bankid.com ссылок для запуска клиента. По сути, это просто пользовательская схема URL, похожая на bankid: //, но регистрирующая оба протокола (https://) и хост (app.bankid.com), который затем запускает приложение. Это дает дополнительное преимущество, если пользователь, который не Если клиент установлен и не может найти клиента через магазин приложений или подобное, он получит доступ к веб-сайту, который затем поможет пользователю установить клиент.

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

...