Naprawianie luki XSS na poziomie pliku

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 PlayPo 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

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ń:

  1. Upewnij się, że komponenty WebView nie mają niebezpiecznych ustawień.
  2. Upewnij się, że komponenty WebView nie mogą ładować plików lokalnych ani wykonywać skryptów JavaScript.
  3. 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:targetSdkVersionpliku 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.

Czy to było pomocne?

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