Примечание: этот проект использует реагирует нативно и связанные библиотеки и функции.
Что я хочу сделать:
В моем приложении я хочу разрешить пользователю нажимать кнопку; и эта кнопка запустит собственный браузер (Chrome или Safari) и перейдет по ссылке, связанной с этой кнопкой, при этом передавая маркер аутентификации пользователей, который был защищен в приложении за Biometrics.
Примечание. У меня есть контроль над приложением и конечной точкой веб-сайта, поэтому я могу настроить конечную точку так, чтобы она принимала этот токен и позволяла пользователю входить в систему, не предлагая ему войти в систему.
Насколько я понимаю, я мог бы легко сделать это, просто добавив маркер аутентификации в конец URL-адреса через строку запроса. Это небезопасно из моего понимания.
Проблемы безопасности:
- Связывание запускает намерение на устройстве, разве не все приложения имеют возможность читать / регистрировать это намерение? Разве это не означает, что вредоносное приложение может захватить намерение связать (включая URL и токен) и поставить под угрозу безопасность?
Вопрос:
Как использовать встроенную ссылку (или другую библиотеку), чтобы устройство открывало собственный браузер, а затем предоставляло заголовки или информацию для этого собственного браузера, которая не видна всем остальным приложениям?
Возможное решение:
Я мог бы попросить мое приложение отправить токен пользователя в базу данных на стороне сервера; Как только я это сделаю, я смогу передать ключ или идентификатор через строку запроса и получить токен со стороны сервера базы данных на веб-сайте. Эти данные могут быть зашифрованы; иметь очень короткий тайм-аут; включите личное рукопожатие для проверки запрашивающей услуги; реагировать только на (или диапазон) IP-адресов, чтобы снизить риск безопасности, но этот вариант сложен и имеет несколько точек отказа. Я надеюсь на более широкий выбор направления.
В заключение:
- Неужели мои проблемы со ссылками не имеют значения?
- Есть ли официальное решение этой проблемы?