Методы проверки конфликтов и перехвата deep link на Android
Краткий ответ
Проверяйте корректность verified links, анализируйте приоритеты intent filters и тестируйте поведение системы при наличии нескольких приложений, обрабатывающих одинаковые ссылки.
Развёрнуто
Краткий ответ
Для тестирования deep link и app link на Android важно удостовериться в правильной настройке verified links, понять приоритеты intent filters в системе и проверить, как устройство реагирует, если несколько приложений претендуют на обработку одной и той же ссылки.
Как это работает
Deep link — это механизм, позволяющий открывать определённые экраны внутри приложения через URL. В Android для обработки таких ссылок используются intent filters, которые регистрируются в манифесте приложения.
При нескольких приложениях с одинаковыми intent filters возникает риск коллизий — система не всегда однозначно выбирает нужное приложение. Если злоумышленник зарегистрирует фильтр на чужой домен, возможен hijacking — перехват ссылок и перенаправление пользователя в нежелательное приложение.
Чтобы предотвратить такие ситуации, Android ввёл verified links — проверку соответствия домена и приложения с помощью файла assetlinks.json на сервере. Это позволяет системе доверять ссылкам и минимизировать атаки.
| Аспект | Описание |
|---|---|
| Verified links | Связывает домен с приложением через цифровую подпись |
| Intent filter | Определяет, какие ссылки приложение может обрабатывать |
| Приоритет фильтров | Система выбирает приложение с наивысшим приоритетом |
| Коллизии deep link | Несколько приложений претендуют на один и тот же URL |
| Hijacking | Перехват ссылок злоумышленником для подмены приложения |
Пример
1. Приложение А и приложение Б оба регистрируют intent filter для ссылки https://example.com/open
2. На сервере https://example.com размещён файл assetlinks.json, связанный только с приложением А
3. При открытии ссылки Android проверяет verified links и отдаёт предпочтение приложению А
4. Если файл отсутствует или неверен, система предлагает пользователю выбрать приложение вручную
Что важно знать на собеседовании
- Verified links обеспечивают безопасность и доверие к deep link
- Intent filters могут конфликтовать, если настроены неправильно
- Приоритет intent filters влияет на выбор приложения системой
- Hijacking — серьёзная угроза безопасности мобильных приложений
- Тестирование должно включать сценарии с несколькими приложениями и проверку поведения системы
Тема: Мобильное тестирование | Уровень: senior