Як усунути вразливі елементи міждодаткових скриптів

Ця інформація призначена для розробників додатків, які містять уразливі елементи міждодаткових скриптів.

У чому проблема

Принаймні один із ваших додатків містить проблему з міждодатковими скриптами компонента WebView. Це дає змогу зловмисним додаткам викрадати файли cookie користувачів або інші дані. Проблему потрібно вирішити до дати, указаної в сповіщенні Play ConsoleДодатки, в яких ви не усунете загрози безпеці до зазначених у Play Console термінів, буде видалено з Google Play.

Потрібна дія

  1. Увійдіть в обліковий запис Play Console і перейдіть у розділ "Сповіщення", щоб переглянути, у яких додатках є проблеми та доки їх потрібно вирішити.
  2. Оновіть уразливі додатки й усуньте загрозу.
  3. Надішліть оновлені версії цих додатків.

Доки запит не буде розглянуто, ваш новий або оновлений додаток матиме статус Готується до публікації. Якщо додаток оновлено неправильно, ви й надалі бачитимете застереження.

Додаткова інформація

Компоненти WebView, які вмикають JavaScript і завантажують читання даних із ненадійних намірів, можуть запускати код JavaScript у небезпечному контексті через оманливість зловмисних додатків. Радимо усунути цю загрозу одним із перелічених нижче способів.

Варіант 1. Переконайтеся, що вражені дії не експортуються

Знайдіть дії з ураженими компонентами WebView. Якщо цим діям не потрібно отримувати наміри з інших додатків, ви можете налаштувати атрибут android:exported=false для дій у маніфесті. Таким чином зловмисні додатки не зможуть надсилати шкідливі вхідні дані жодним компонентам WebView в цих діях.

Варіант 2. Захистіть компоненти WebView в експортованих діях

Якщо ви хочете вказати якусь дію з ураженим компонентом WebView як експортовану, потрібно внести такі зміни:

  1. Захистіть виклики evaluateJavascript і loadUrl

    Переконайтеся, що параметри evaluateJavascript завжди надійні. Виклики evaluateJavascript із використанням неперевірених вхідних даних із ненадійних намірів дають зловмисникам змогу виконувати шкідливі сценарії в ураженому компоненті WebView. Так само виклики loadUrl із використанням неперевірених вхідних даних, що містять URL-адреси зі схемами javascript:, дають змогу зловмисникам виконувати шкідливі скрипти.

  2. Уникайте завантаження небезпечних файлів

    Переконайтеся, що вражені компоненти WebView не можуть завантажувати базу даних файлів cookie.Зловмисні додатки можуть у два етапи здійснювати атаки на компоненти WebView, які завантажують неперевірені URL-адреси file:// із ненадійних намірів. Перший етап: зловмисна веб-сторінка може вписати тег <script> у базу даних файлів cookie. Другий етап: ця змінена база даних файлів cookie може завантажитися, якщо зловмисний додаток надсилає намір із URL-адресою file://, що вказує на базу даних файлів cookie вашого компонента WebView, або якщо зловмисна сторінка сама переспрямовує ваш компонент WebView на URL-адресу файлу. Буде завантажено й виконано зловмисний скрипт (<script>), що зберігається в базі даних файлів cookie. Цей скрипт може викрасти інформацію про сеанс.

    Є три способи завадити враженим компонентам WebView завантажувати базу даних файлів cookie компонента WebView.

    1. Повністю вимкніть доступ до файлів.
    2. Переконайтеся, що компонент WebView завантажує лише URL-адреси file:// і вони вказують лише на безпечні файли. Зауважте, що зловмисники можуть використовувати символічні посилання, щоб обманути перевірку URL-шляху. Щоб запобігти атакам, перед завантаженням перевірте не лише URL-шлях, а й канонічний шлях усіх ненадійних URL-адрес file://.
    3. Щоб дозволити URL-адреси http:// та file://, включіть підтвердження URL-адрес file:// за допомогою shouldOverrideUrlLoading і shouldInterceptRequest у WebViewClient. Це забезпечить підтвердження всіх URL-адрес, що завантажуються в компонент WebView, а не лише тих, які безпосередньо вказані для виклику функції loadUrl().

Ми завжди готові допомогти
Якщо у вас є технічні запитання про цю загрозу безпеці, опублікуйте їх на сайті Stack Overflow з тегом android-security. Щоб дізнатися більше про те, як вирішити цю проблему, зв'яжіться з нашою службою підтримки розробників.

false
Головне меню
2004209357736336857
true
Пошук у довідковому центрі
true
true
true
true
true
5016068
false
false