Выбор ответа Senior Безопасность мобильных приложений обновлено

Безопасность WebView

Вопрос

Приложение открывает в WebView страницы партнёров и даёт им JS-мост к нативному коду. В чём главный риск?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Любая открытая страница (подменённая или с XSS) получит доступ к нативным функциям через мост. JS-мост (addJavascriptInterface, WKScriptMessageHandler) превращает уязвимость веб-страницы в уязвимость приложения.

Варианты ответа

  1. WebView медленнее Safari и Chrome, поэтому мост будет тормозить при частых вызовах
  2. JS-мосты не работают на iOS в WKWebView, поэтому такая схема возможна только на Android
  3. WebView не поддерживает HTTPS с современными шифрами, и трафик партнёров идёт открытым
  4. Любая открытая страница (подменённая или с XSS) получит доступ к нативным функциям через мостправильный ответ

Разбор

JS-мост (addJavascriptInterface, WKScriptMessageHandler) превращает уязвимость веб-страницы в уязвимость приложения. Мост включают только для доверенных доменов, проверяют origin каждого сообщения, отдают минимум методов и не передают токены в JS. Сторонний контент лучше открывать в системном браузере или Custom Tabs/SFSafariViewController.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.