Te informacje są przeznaczone dla deweloperów, których aplikacje są podatne na ataki XSS (Cross-Site Scripting) oparte na pliku.
O co chodzi?
Co najmniej jedna z Twoich aplikacji jest podatna na ataki XSS oparte na pliku i musisz to naprawić. 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
- Zaloguj się w Konsoli Play i przejdź do sekcji Alerty, by sprawdzić, których aplikacji dotyczy problem i jaki jest termin jego rozwiązania.
- Zaktualizuj te aplikacje i usuń lukę w zabezpieczeniach.
- 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
Komponent WebView
z konfiguracją w obiekcie WebSettings
, w którym metoda setAllowFileAccessFromFileURLs
lub setAllowUniversalAccessFromFileURLs
ma wartość „true” (prawda), nie może wczytywać żadnych niezaufanych treści internetowych. Obejmuje to treści z zaufanych domen, które są ładowane przy użyciu protokołu HTTP. Złośliwe treści internetowe lub sieci mogą wstrzykiwać skrypty, by spowodować przekierowanie komponentu WebView do złośliwego pliku lokalnego i uruchomić atak za pomocą skryptów przesyłanych między witrynami. Może to pozwolić na dostęp do prywatnych plików lokalnych lub plików cookie.
Aby zabezpieczyć aplikacje przed atakiem wykorzystującym tę lukę, skorzystaj z jednego z tych rozwiązań:
- Upewnij się, że komponenty WebView nie mają niebezpiecznych ustawień.
- Upewnij się, że komponenty WebView nie mogą ładować plików lokalnych ani wykonywać skryptów JavaScript.
- Upewnij się, że komponenty WebView z niebezpiecznymi ustawieniami nie ładują niezaufanych treści internetowych.
1. Upewnij się, że komponenty WebView nie mają niebezpiecznych ustawień.
Zaktualizuj wartość android:targetSdkVersion
w pliku manifestu na co najmniej 16, by wersja pakietu SDK używała bezpiecznych domyślnych ustawień komponentu WebView. Możesz też wywołać metodę setAllowFileAccessFromFileURLs(false)
oraz setAllowUniversalAccessFromFileURLs(false)
, by upewnić się, że ich komponenty WebView są bezpieczne.
2. Upewnij się, że komponenty WebView nie mogą ładować plików lokalnych ani wykonywać JavaScriptu.
Wywołaj metodę setAllowFileAccess(false)
, by uniemożliwić komponentom WebView z niebezpiecznymi ustawieniami ładowanie plików lokalnych, lub użyj metody setJavaScriptEnabled(false)
, by uniemożliwić komponentom WebViews z niebezpiecznymi ustawieniami wykonywanie kodu JavaScript.
3. Upewnij się, że komponenty WebView z niebezpiecznymi ustawieniami nie ładują niezaufanych treści internetowych.
Jeśli komponent WebView musi korzystać z niebezpiecznych ustawień, upewnij się, że nie może wczytywać niezaufanych treści internetowych. Obejmuje to treści wczytywane przy użyciu protokołu HTTP. Możesz ustawić atrybut android:usesCleartextTraffic=false
lub skonfigurować funkcję Network Security Config, która nie zezwala na ruch HTTP w pliku manifestu. Możesz też upewnić się, że żadne z komponentów WebView z niebezpiecznymi ustawieniami nie ładują adresów URL ze schematami HTTP.
Nie zezwalaj również komponentom WebView z niebezpiecznymi ustawieniami na wczytywanie adresów URL uzyskanych z niezaufanych źródeł.
Chętnie Ci pomożemy
Jeśli masz pytania techniczne związane z tą luką w zabezpieczeniach, możesz je opublikować na Stack Overflow, używając tagu „android-security”. Jeśli potrzebujesz wyjaśnienia czynności potrzebnych do rozwiązania tego problemu, skontaktuj się z naszym zespołem pomocy dla deweloperów.