Διόρθωση ευπάθειας εμβόλιμης προσθήκης SQL

Αυτές οι πληροφορίες προορίζονται για προγραμματιστές με εφαρμογές που περιέχουν ευπάθειες εμβόλιμης προσθήκης SQL.

Τι συμβαίνει

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

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

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

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

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

Οι υλοποιήσεις των στοιχείων query, update και delete στο εξαγόμενο στοιχείο ContentProviders μπορεί να είναι ευάλωτες σε εμβόλιμη προσθήκη SQL, αν μεταβιβάζουν μη ασφαλείς εισαγωγές στις δηλώσεις SQL. Μια κακόβουλη εφαρμογή μπορεί να παράσχει μια δημιουργημένη εισαγωγή, για να αποκτήσει πρόσβαση σε ιδιωτικά δεδομένα ή να καταστρέψει τα περιεχόμενα μιας βάσης δεδομένων. Μπορείτε να διορθώσετε αυτό το πρόβλημα με τους εξής τρόπους:

Εάν ένα στοιχείο ContentProvider που έχει επηρεαστεί δεν χρειάζεται να εκτεθεί σε άλλες εφαρμογές:

  • Μπορείτε να τροποποιήσετε την ετικέτα <provider> του στοιχείου ContentProvider που έχει επηρεαστεί στο μανιφέστο σας, για να ρυθμίσετε την παράμετρο android:exported="false". Αυτό θα εμποδίσει την αποστολή intent από άλλες εφαρμογές στο στοιχείο ContentProvider που έχει επηρεαστεί.
  • Μπορείτε, επίσης, να ορίσετε το χαρακτηριστικό android:permission ως permission με το στοιχείο android:protectionLevel="signature" για να εμποδίσετε τις εφαρμογές που έχουν δημιουργήσει άλλοι προγραμματιστές να στέλνουν intent στο στοιχείο ContentProvider που έχει επηρεαστεί.

Εάν ένα στοιχείο ContentProvider  που έχει επηρεαστεί πρέπει να εκτεθεί σε άλλες εφαρμογές:

  • Μπορείτε να αποτρέψετε την εμβόλιμη προσθήκη SQL στο στοιχείο SQLiteDatabase.query, χρησιμοποιώντας την αυστηρή λειτουργία με μια αντιστοίχιση προβολής. Η αυστηρή λειτουργία παρέχει προστασία ενάντια σε κακόβουλους όρους επιλογής και η αντιστοίχιση προβολής προστατεύει ενάντια σε κακόβουλους όρους προβολής. Πρέπει να χρησιμοποιήσετε και τις δύο λειτουργίες, για να είστε σίγουροι ότι τα ερωτήματα είναι ασφαλή.
  • Μπορείτε να αποτρέψετε την εμβόλιμη προσθήκη SQL στα στοιχεία SQLiteDatabase.update και SQLiteDatabase.delete μέσω ενός όρου επιλογής που χρησιμοποιεί το στοιχείο "?" ως παράμετρο με δυνατότητα αντικατάστασης και έναν ξεχωριστό πίνακα ορισμάτων επιλογής. Ο όρος επιλογής δεν πρέπει να δημιουργηθεί από μη αξιόπιστες εισαγωγές.

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

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

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