Ця інформація призначена для розробників додатків, які містять уразливі елементи міждодаткових скриптів.
У чому проблема
Принаймні один із ваших додатків містить проблему з міждодатковими скриптами компонента WebView. Це дає змогу зловмисним додаткам викрадати файли cookie користувачів або інші дані. Проблему потрібно вирішити до дати, указаної в сповіщенні Play Console. Додатки, в яких ви не усунете загрози безпеці до зазначених у Play Console термінів, буде видалено з Google Play.
Потрібна дія
- Увійдіть в обліковий запис Play Console і перейдіть у розділ "Сповіщення", щоб переглянути, у яких додатках є проблеми та доки їх потрібно вирішити.
- Оновіть уразливі додатки й усуньте загрозу.
- Надішліть оновлені версії цих додатків.
Доки запит не буде розглянуто, ваш новий або оновлений додаток матиме статус Готується до публікації. Якщо додаток оновлено неправильно, ви й надалі бачитимете застереження.
Додаткова інформація
Компоненти WebView, які вмикають JavaScript і завантажують читання даних із ненадійних намірів, можуть запускати код JavaScript у небезпечному контексті через оманливість зловмисних додатків. Радимо усунути цю загрозу одним із перелічених нижче способів.
Варіант 1. Переконайтеся, що вражені дії не експортуються
Знайдіть дії з ураженими компонентами WebView. Якщо цим діям не потрібно отримувати наміри з інших додатків, ви можете налаштувати атрибут android:exported=false для дій у маніфесті. Таким чином зловмисні додатки не зможуть надсилати шкідливі вхідні дані жодним компонентам WebView в цих діях.
Варіант 2. Захистіть компоненти WebView в експортованих діях
Якщо ви хочете вказати якусь дію з ураженим компонентом WebView як експортовану, потрібно внести такі зміни:
- Захистіть виклики evaluateJavascript і loadUrl
Переконайтеся, що параметри evaluateJavascript завжди надійні. Виклики evaluateJavascript із використанням неперевірених вхідних даних із ненадійних намірів дають зловмисникам змогу виконувати шкідливі сценарії в ураженому компоненті WebView. Так само виклики loadUrl із використанням неперевірених вхідних даних, що містять URL-адреси зі схемами javascript:, дають змогу зловмисникам виконувати шкідливі скрипти.
- Уникайте завантаження небезпечних файлів
Переконайтеся, що вражені компоненти WebView не можуть завантажувати базу даних файлів cookie.Зловмисні додатки можуть у два етапи здійснювати атаки на компоненти WebView, які завантажують неперевірені URL-адреси file:// із ненадійних намірів. Перший етап: зловмисна веб-сторінка може вписати тег <script> у базу даних файлів cookie. Другий етап: ця змінена база даних файлів cookie може завантажитися, якщо зловмисний додаток надсилає намір із URL-адресою file://, що вказує на базу даних файлів cookie вашого компонента WebView, або якщо зловмисна сторінка сама переспрямовує ваш компонент WebView на URL-адресу файлу. Буде завантажено й виконано зловмисний скрипт (<script>), що зберігається в базі даних файлів cookie. Цей скрипт може викрасти інформацію про сеанс.
Є три способи завадити враженим компонентам WebView завантажувати базу даних файлів cookie компонента WebView.
- Повністю вимкніть доступ до файлів.
- Переконайтеся, що компонент WebView завантажує лише URL-адреси file:// і вони вказують лише на безпечні файли. Зауважте, що зловмисники можуть використовувати символічні посилання, щоб обманути перевірку URL-шляху. Щоб запобігти атакам, перед завантаженням перевірте не лише URL-шлях, а й канонічний шлях усіх ненадійних URL-адрес file://.
- Щоб дозволити URL-адреси http:// та file://, включіть підтвердження URL-адрес file:// за допомогою shouldOverrideUrlLoading і shouldInterceptRequest у WebViewClient. Це забезпечить підтвердження всіх URL-адрес, що завантажуються в компонент WebView, а не лише тих, які безпосередньо вказані для виклику функції loadUrl().
Ми завжди готові допомогти
Якщо у вас є технічні запитання про цю загрозу безпеці, опублікуйте їх на сайті Stack Overflow з тегом android-security. Щоб дізнатися більше про те, як вирішити цю проблему, зв'яжіться з нашою службою підтримки розробників.