Ces informations sont destinées aux développeurs d'applications présentant une faille liée à l'injection SQL.
Que se passe-t-il ?
Une ou plusieurs de vos applications présentent une faille liée à l'injection SQL qui doit être corrigée. Veuillez consulter la notification dans la console Play. Passé les délais indiqués dans la console Play, toutes les applications présentant des failles de sécurité non résolues pourront être supprimées de Google Play.
Action requise
- Connectez-vous à la console Play et accédez à la section "Alertes" pour savoir quelles sont les applications concernées et connaître les délais à respecter pour résoudre ces problèmes.
- Mettez à jour les applications concernées et corrigez la faille.
- Envoyez les versions mises à jour des applications concernées.
Votre application sera à nouveau examinée. Le processus peut durer plusieurs heures. Si votre application est approuvée et publiée, aucune autre action de votre part n'est requise. Si l'application n'est pas approuvée, sa nouvelle version ne sera pas publiée, et vous recevrez une notification par e-mail.
Informations supplémentaires
Les implémentations de query
, update
et delete
dans les exportations de ContentProviders
peuvent être vulnérables aux injections SQL si elles transmettent des entrées non rectifiées aux instructions SQL. Une application malveillante peut injecter une entrée destinée à accéder à des données privées ou corrompre les contenus d'une base de données. Pour résoudre ce problème, procédez comme suit :
Si les autres applications n'ont pas besoin d'accéder à l'entrée ContentProvider
posant problème :
- Vous pouvez modifier la balise
<provider>
de l'entréeContentProvider
concernée dans le fichier manifeste pour définirandroid:exported="false"
. Cela empêchera les autres applications d'envoyer des intents à l'entréeContentProvider
concernée. -
Vous pouvez également définir l'attribut
android:permission
en tant qu'élémentpermission
avecandroid:protectionLevel="signature"
pour empêcher les applications d'autres développeurs d'envoyer des intents à l'entréeContentProvider
concernée.
Si d'autres applications ont besoin d'accéder à l'entrée ContentProvider
posant problème :
- Vous pouvez empêcher les injections SQL dans
SQLiteDatabase.query
en utilisant le mode strict avec une carte de projection. Le mode strict vous protège des clauses de sélection malveillantes, et la carte de projection vous protège des clauses de projection malveillantes. Vous devez utiliser ces deux fonctionnalités pour sécuriser vos requêtes. - Vous pouvez empêcher les injections SQL dans
SQLiteDatabase.update
etSQLiteDatabase.delete
avec une clause de sélection utilisant le caractère"?"
en tant que paramètre remplaçable et un tableau d'arguments de sélection distinct. Votre clause de sélection ne doit pas être composée d'entrées non fiables.
Nous sommes là pour vous aider
Si vous avez des questions techniques sur cette faille, vous pouvez publier un message sur le site Stack Overflow en utilisant le tag "android-security". Si vous souhaitez obtenir des éclaircissements sur les étapes à suivre pour résoudre ce problème, vous pouvez contacter notre équipe d'assistance pour les développeurs.