Решавање пропуста у вези са унакрсним скриптовањем апликација

Ове информације су намењене програмерима са апликацијама које садрже пропуст у вези са унакрсним скриптовањем апликација.

Шта се дешава

Једна апликација или више њих садржи пропуст у вези са WebView унакрсним скриптовањем апликација, што злонамерним апликацијама може да омогући да краду колачиће и друге податке корисника. Погледајте обавештење у Play конзолиУклонићемо из Google Play-а све апликације које и после датума наведених у Play конзоли буду садржале безбедносне пропусте.

Треба да реагујете​

  1. Пријавите се у Play конзолу и идите до одељка Обавештења да бисте видели које апликације су угрожене и рокове за решавање тих проблема.
  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-ови не могу да учитају базу података о колачићима.Злонамерне апликације у два корака могу да нападну WebView-ове који из непоузданих намера учитавају URL-ове са путањом file:// који садрже грешку. Први корак: Злонамерна веб-страница може да дода ознаке <script> у базу података о колачићима. Други корак: Овај измењени фајл базе података колачића може да се учита ако злонамерна апликација шаље намеру са URL-ом file:// који упућује на базу података колачића WebView-а или ако сама злонамерна веб-страница преусмерава свој WebView на URL фајла. Злонамерна ознака <script> сачувана у бази података о колачићима ће се учитати и извршити, што може да вам украде податке о сесији.

    Можете да се уверите да угрожени WebView-ови не могу да учитавају базу података о колачићима WebView-а на следећа три начина.

    1. Онемогућите сав приступ фајловима.
    2. Уверите се да WebView учитава само URL-ове file:// и потврдите да сви учитани URL-ови file:// усмеравају на безбедне фајлове. Имајте на уму да нападач може да користи симболичан линк да би преварио провере путање URL-а. Да бисте спречили такав напад, пре учитавања проверите каноничку путању сваког непоузданог URL-а file:// уместо обичне провере путање URL-а.
    3. Ако желите да омогућите и URL-ове http:// и URL-ове file://, примените верификацију URL-а file:// користећиshouldOverrideUrlLoading иshouldInterceptRequest у обрађивачу WebViewClient. На тај начин обезбеђујете да сви URL-ови учитани у WebView буду верификовани, а не само URL-ови који су директно послати у позив функције loadUrl().

Ту смо да помогнемо
Ако имате техничких питања у вези са пропустом, можете да их поставите на Stack Overflow и користите ознаку android-security. Да бисте боље разумели кораке које треба да предузмете за решавање овог проблема, обратите се тиму корисничке подршке за програмере.

false
Главни мени
2971777298981292999
true
Центар за помоћ за претрагу
true
true
true
true
true
5016068
false
false