Выбор ответа Senior Навигация, координаторы и deep links обновлено
Безопасность deep links
Вопрос
Почему параметры deep link нужно валидировать так же, как ввод пользователя?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Ссылку может сформировать кто угодно: ею открывают служебные экраны, подставляют чужие id, делают действия. Deep link это внешний вход в приложение.
Варианты ответа
- Иначе ссылка не откроется на Android 14: система блокирует intent с непроверенными параметрами
- Параметры deep link приходят в кодировке Base64, и без проверки их декодирование может уронить приложение при запуске
- Ссылку может сформировать кто угодно: ею открывают служебные экраны, подставляют чужие id, делают действияправильный ответ
- Валидация нужна только для ссылок из push-уведомлений, остальные приходят из проверенного домена
Разбор
Deep link это внешний вход в приложение. Нельзя по ссылке сразу выполнять действие (перевод, подписку, удаление): нужно открыть экран и попросить подтверждение. Доступ к данным проверяет сервер, а клиент проверяет формат параметров и не открывает внутренние или отладочные экраны. На Android дополнительно важно не экспортировать лишние Activity и проверять intent. Источник ссылки не делает её доверенной.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.