Существует двусторонняя связь между приложением и веб-сайтом.
Приложение перечисляет связанные домены в файле info.plist
.Веб-сайт в соответствующем домене предоставляет идентификаторы комплекта поддерживаемых приложений в файле apple-app-site-association
.
Чтобы автозаполнение пароля работало, обе части ссылки должны быть на месте.
Рассматривая пример, предложенный вами для linkedin.com.
- Злоумышленник может опубликовать приложение, в котором в качестве связанного домена указан
linkedin.com
. - Приложение имеет идентификатор пакета,скажем,
com.badapple.trickyapp
- Этот идентификатор пакета не будет указан в файле linkedin.com
apple-app-site-association
, поскольку злоумышленник не может изменить этот файл;Он управляется связанными входами. - Поскольку совпадений нет, автозаполнение не будет запускаться автоматически.
Как насчет другого способа?
- Linkedin.com
apple-app-site-association
будет содержать идентификатор пакета для своего приложения, скажем, com.linkedin.app
. - Злоумышленник не может опубликовать приложение с этим идентификатором пакета, поскольку в нем уже есть приложениехранить с этим идентификатором (официальное приложение LinkedIn), поэтому они должны использовать другой идентификатор пакета.
- Кроме того, идентификатор пакета должен включать идентификатор команды, поэтому только приложения из команды LinkedIn team может совпадать
- Это возвращается к первому случаю;нет автозаполнения
По сути, вам нужно контролировать как приложение, так и содержимое веб-сайта для запуска автозаполнения.
Если в приложении указано несколько доменов и соответствующих ассоциаций сайтовна месте, тогда iOS предложит несколько вариантов выбора пароля на панели быстрого ввода.Если в цепочке для ключей есть больше совпадений (или любого другого поставщика паролей, который использует пользователь), они могут использовать кнопку «пароли ...», чтобы просмотреть все совпадения в табличном представлении и выбрать соответствующие данные учетной записи.