Διόρθωση ευπάθειας XSS που βασίζεται σε αρχείο

Αυτές οι πληροφορίες προορίζονται για προγραμματιστές με εφαρμογές που είναι ευάλωτες σε επιθέσεις μέσω δέσμης ενεργειών μεταξύ ιστοτόπων που βασίζονται σε αρχείο.

Τι συμβαίνει

Μία ή περισσότερες από τις εφαρμογές σας περιέχουν μια ευπάθεια δέσμης ενεργειών μεταξύ ιστοτόπων που βασίζεται σε αρχείο, την οποία πρέπει να διορθώσετε. Ανατρέξτε στην ειδοποίηση στο Play ConsoleΜετά την πάροδο των προθεσμιών που εμφανίζονται στο Play Console, όλες οι εφαρμογές που περιέχουν ευπάθειες ασφαλείας που δεν έχουν αντιμετωπιστεί θα καταργηθούν από το Google Play.

Απαιτείται ενέργεια​

  1. Συνδεθείτε στο Play Console και μεταβείτε στην ενότητα Ειδοποιήσεις για να δείτε τις επηρεαζόμενες εφαρμογές και τις προθεσμίες για την επίλυση των σχετικών ζητημάτων.
  2. Ενημερώστε τις επηρεαζόμενες εφαρμογές και διορθώστε την ευπάθεια.
  3. Υποβάλετε τις ενημερωμένες εκδόσεις των επηρεαζόμενων εφαρμογών.

Μετά την επανυποβολή, η εφαρμογή σας θα ελεγχθεί ξανά. Αυτή η διαδικασία μπορεί να διαρκέσει αρκετές ώρες. Εάν ο έλεγχος της εφαρμογής ολοκληρωθεί χωρίς προβλήματα και η εφαρμογή δημοσιευτεί με επιτυχία, τότε δεν απαιτείται καμία άλλη ενέργεια. Εάν ο έλεγχος της εφαρμογής αποτύχει, τότε η νέα έκδοση της εφαρμογής δεν θα δημοσιευτεί και θα λάβετε σχετική ειδοποίηση με ένα μήνυμα ηλεκτρονικού ταχυδρομείου.

Πρόσθετα στοιχεία

Τα WebViews με WebSettings που ορίζουν την τιμή του στοιχείου setAllowFileAccessFromFileURLs ή του στοιχείου setAllowUniversalAccessFromFileURLs σε true δεν πρέπει να φορτώνουν μη αξιόπιστο περιεχόμενο ιστού. Σε αυτό περιλαμβάνεται και το περιεχόμενο από αξιόπιστους τομείς το οποίο φορτώνεται μέσω HTTP. Το κακόβολο περιεχόμενο ιστού ή τα κακόβουλα δίκτυα μπορούν να εισαγάγουν δέσμες ενεργειών για την ανακατεύθυνση των WebViews σε ένα κακόβουλο τοπικό αρχείο και να ξεκινήσουν μια επίθεση μέσω δέσμης ενεργειών μεταξύ ιστοτόπων, για να αποκτήσουν πρόσβαση σε ιδιωτικά τοπικά αρχεία ή cookie.

Θα πρέπει να αποτρέψετε αυτήν την ευπάθεια με ένα από τους παρακάτω τρόπους:

  1. Βεβαιωθείτε ότι τα WebViews δεν περιέχουν επικίνδυνες ρυθμίσεις
  2. Βεβαιωθείτε ότι τα WebViews δεν μπορούν να φορτώσουν τοπικά αρχεία ή να εκτελέσουν κώδικα JavaScript
  3. Βεβαιωθείτε ότι τα WebViews με επικίνδυνες ρυθμίσεις δεν φορτώνουν μη αξιόπιστο περιεχόμενο ιστού

1. Για να είστε βέβαιοι ότι τα WebViews δεν περιέχουν επικίνδυνες ρυθμίσεις

Ενημερώστε το στοιχείο android:targetSdkVersion στο Manifest ώστε να είναι τουλάχιστον 16, για να χρησιμοποιεί τις προεπιλεγμένες ρυθμίσεις για το WebView. Σε διαφορετική περίπτωση, καλέστε το στοιχείο setAllowFileAccessFromFileURLs(false) και το στοιχείο setAllowUniversalAccessFromFileURLs(false), για να βεβαιωθείτε ότι τα WebViews είναι ασφαλή.

2. Για να είστε βέβαιοι ότι τα WebViews δεν μπορούν να φορτώσουν τοπικά αρχεία ή να εκτελέσουν κώδικα JavaScript

Καλέστε το στοιχείο setAllowFileAccess(false), για να εμποδίσετε τα WebViews με επικίνδυνες ρυθμίσεις να φορτώνουν τοπικά αρχεία ή καλέστε το στοιχείο setJavaScriptEnabled(false), για να εμποδίσετε τα WebViews με επικίνδυνες ρυθμίσεις να εκτελούν κώδικα JavaScript.

3. Για να είστε σίγουροι ότι τα WebView με επικίνδυνες ρυθμίσεις δεν φορτώνουν μη αξιόπιστο περιεχόμενο ιστού

Εάν τα WebViews πρέπει να ενεργοποιήσουν αυτές τις επικίνδυνες ρυθμίσεις, θα πρέπει να διασφαλίσετε ότι δεν θα φορτώσουν μη αξιόπιστο περιεχόμενο ιστού. Σε αυτό περιλαμβάνεται το περιεχόμενο ιστού που φορτώνεται μέσω HTTP. Μπορείτε να ορίσετε το στοιχείο android:usesCleartextTraffic=false ή να ορίσετε ένα Network Security Config που απαγορεύει την επισκεψιμότητα HTTP στο Manifest. Εναλλακτικά, μπορείτε να διασφαλίσετε ότι τα WebViews με επικίνδυνες ρυθμίσεις δεν φορτώνουν URL, χρησιμοποιώντας συνδυασμούς HTTP.

Θα πρέπει, επίσης, να βεβαιωθείτε ότι τα WebViews με επικίνδυνες ρυθμίσεις δεν φορτώνουν URL που παρέχονται από μη αξιόπιστες πηγές.

Είμαστε εδώ για να σας βοηθήσουμε

Αν έχετε τεχνικές ερωτήσεις σχετικά με τη συγκεκριμένη ευπάθεια, μπορείτε να τις δημοσιεύσετε στον ιστότοπο Stack Overflow με την ετικέτα “android-security”. Για διευκρινίσεις σχετικά με τα βήματα που πρέπει να ακολουθήσετε για την επίλυση του προβλήματος, μπορείτε να επικοινωνήσετε με την ομάδα υποστήριξης προγραμματιστών.

false
Κύριο μενού
4365968003137931321
true
Αναζήτηση στο Κέντρο Βοήθειας
true
true
true
true
true
5016068
false
false