Die folgenden Informationen richten sich an Entwickler von Apps, die eine wegen möglicher SQL-Einschleusungen eine Sicherheitslücke enthalten.
Aktuelle Informationen
Eine oder mehrere Ihrer Apps enthalten eine durch SQL-Einschleusungen bedingte Sicherheitslücke, die behoben werden muss. Weitere Informationen dazu finden Sie in der entsprechenden Benachrichtigung in der Play Console. Nachdem die in der Play Console angezeigten Fristen abgelaufen sind, werden alle Apps mit nicht behobenen Sicherheitslücken aus Google Play entfernt.
Erforderliche Maßnahmen
- Melden Sie sich in der Play Console an und gehen Sie zum Bereich "Warnmeldungen". Dort sehen Sie, welche Apps betroffen sind und bis wann Sie die entsprechenden Probleme beheben müssen.
- Aktualisieren Sie die betroffenen Apps und beseitigen Sie die Sicherheitslücken.
- Reichen Sie aktualisierte Versionen Ihrer betroffenen Apps ein.
Nachdem Ihre App neu eingereicht wurde, wird sie noch einmal überprüft. Dieser Vorgang kann mehrere Stunden dauern. Wenn die App die Überprüfung besteht und veröffentlicht wird, sind keine weiteren Maßnahmen erforderlich. Wenn sie die Überprüfung nicht besteht, wird die neue App-Version nicht veröffentlicht und Sie erhalten eine Benachrichtigung per E-Mail.
Weitere Details
Implementierungen von query
, update
und delete
in exportierten ContentProviders
können für eine SQL-Einschleusung anfällig sein, wenn sie unbereinigte Eingaben an SQL-Anweisungen senden. Eine schädliche App kann dann eine Eingabe einschleusen, um auf private Daten zuzugreifen oder Datenbankinhalte zu beschädigen. Sie können dieses Problem folgendermaßen beheben:
Wenn ein betroffener ContentProvider
nicht für andere Apps freigegeben werden muss, haben Sie die folgenden Möglichkeiten:
- Sie können das
<provider>
-Tag des betroffenenContentProvider
in Ihrem Manifest anpassen, umandroid:exported="false"
festzulegen. Dadurch wird verhindert, dass andere Apps Intents an den betroffenenContentProvider
senden. -
Sie können auch das
android:permission
-Attribut alspermission
fürandroid:protectionLevel="signature"
festlegen. Dadurch wird verhindert, dass Apps von anderen Entwicklern Intents an den betroffenenContentProvider
senden.
Wenn ein betroffener ContentProvider
für andere Apps freigegeben werden muss, haben Sie die folgenden Möglichkeiten:
- Sie können SQL-Einschleusungen in
SQLiteDatabase.query
verhindern, indem Sie den strikten Modus mit einer Projektionskarte verwenden. Der strikte Modus schützt vor schädlichen Auswahlklauseln und die Projektionskarte vor schädlichen Projektionsklauseln. Sie müssen diese beiden Funktionen verwenden, damit Ihre Abfragen sicher sind. - Sie können SQL-Einschleusungen in
SQLiteDatabase.update
undSQLiteDatabase.delete
verhindern, indem Sie eine Auswahlklausel mit"?"
als austauschbarem Parameter und einem separaten Array von Auswahlargumenten verwenden. Ihre Auswahlklausel sollte nur aus Eingaben bestehen, die vertrauenswürdig sind.
Hilfe und Support
Technische Fragen zu dieser Sicherheitslücke können Sie bei Stack Overflow posten. Bitte verwenden Sie dabei das Tag "android-security". Weitere Informationen zu den Maßnahmen, die zur Lösung dieses Problems erforderlich sind, erhalten Sie von unserem Entwicklersupportteam.