Eliminacja luki w zabezpieczeniach umożliwiającej wstrzykiwanie kodu do interfejsu JavaScript

Te informacje są przeznaczone dla twórców aplikacji, które zawierają lukę w zabezpieczeniach umożliwiającą wstrzykiwanie kodu do interfejsu JavaScript.

O co chodzi?

Zapoznaj się z powiadomieniem w Konsoli Play. Po przekroczeniu terminów wskazanych w Konsoli Play wszystkie aplikacje z lukami w zabezpieczeniach mogą zostać usunięte z Google Play.

Wymagane działania​

  1. Zaloguj się w Konsoli Play i przejdź do sekcji Alerty, by sprawdzić, których aplikacji dotyczy problem i jaki jest termin jego rozwiązania.
  2. Zaktualizuj te aplikacje i usuń lukę w zabezpieczeniach.
  3. Prześlij zaktualizowane wersje tych aplikacji.

Po ponownym przesłaniu aplikacja zostanie jeszcze raz sprawdzona. Ten proces może potrwać kilka godzin. Jeśli aplikacja pomyślnie przejdzie weryfikację i zostanie opublikowana, nie musisz już nic robić. Jeśli wynik weryfikacji nie będzie pomyślny, nowa wersja aplikacji nie zostanie opublikowana, a Ty otrzymasz powiadomienie e-mailem.

Dodatkowe szczegóły

Komponenty WebView, które udostępniają kodowi JavaScript obiekty na poziomie aplikacji za pomocą metody addJavascriptInterface i wczytują niezaufane treści internetowe, są narażone na wstrzykiwanie kodu do interfejsu JavaScript. Niezaufane treści mogą wykonywać dowolne metody udostępnionych obiektów z dopisanym ciągiem @JavascriptInterface. Może to prowadzić do wycieku danych lub ich uszkodzenia albo do samowolnego wykonania kodu.

Aby zabezpieczyć aplikacje przed atakiem wykorzystującym tę lukę, użyj jednego z tych rozwiązań:

Opcja 1. Sprawdź, czy komponenty WebView nie dodają żadnych obiektów do interfejsu JavaScript

Upewnij się, że komponenty WebView, które wczytują niezaufane treści internetowe, nie dodają żadnych obiektów do interfejsu JavaScript. Możesz to zrobić na dwa sposoby:

 

Sprawdź, czy żadne obiekty nie są nigdy dodawane do interfejsu JavaScript poprzez wywołania metody addJavascriptInterface.

  1. Przed wczytaniem niezaufanych treści przez komponent WebView usuń z interfejsu JavaScript obiekty występujące w metodzie shouldInterceptRequest za pomocą metody removeJavascriptInterface.

Opcja 2. Sprawdź, czy komponenty WebView nie wczytują niezaufanych treści internetowych

Jeśli Twoja aplikacja musi udostępniać obiekty interfejsowi JavaScript komponentu WebView, zadbaj o to, by ten komponent WebView nie wczytywał treści internetowych poprzez niezaszyfrowane połączenie. Aby to zrobić, możesz ustawić w pliku manifestu atrybut android:usesCleartextTraffic na wartość „false” lub skonfigurować zabezpieczenia sieciowe, które zablokują ruch HTTP. Zamiast tego możesz też zadbać o to, by żadne komponenty WebView, których dotyczy ta luka, nie wczytywały adresów URL ze schematami HTTP poprzez metodę loadUrl.


Nie zezwalaj również komponentom WebView z interfejsami JavaScript na wczytywanie niesprawdzonych adresów URL uzyskanych z niezaufanych źródeł (np. adresów URL uzyskanych z niezaufanych intencji).

Możesz liczyć na naszą pomoc

Jeśli masz pytania techniczne związane z tą luką, możesz je opublikować na stronie Stack Overflow, używając tagu „android-security”. Jeśli potrzebujesz wyjaśnień dotyczących czynności potrzebnych do rozwiązania tego problemu, skontaktuj się z naszym zespołem pomocy dla deweloperów.

Czy to było pomocne?

Jak możemy ją poprawić?
false
Menu główne
5836200166701531523
true
Wyszukaj w Centrum pomocy
true
true
true
true
true
5016068
false
false