Queste informazioni sono rivolte agli sviluppatori di app per cui esiste un problema di vulnerabilità SQL injection.
Situazione attuale
Una o più delle tue app contengono una vulnerabilità SQL injection che deve essere corretta. Leggi la notifica su Play Console. Dopo le scadenze indicate in Play Console, le app che contengono vulnerabilità di sicurezza non corrette potrebbero essere rimosse da Google Play.
Azione richiesta
- Accedi a Play Console e vai alla sezione Avvisi per scoprire quali app sono interessate dai problemi e le scadenze per risolverli.
- Aggiorna le app interessate e correggi la vulnerabilità.
- Invia le versioni aggiornate delle app interessate.
Quando invii nuovamente le app, queste vengono riesaminate. Questa procedura può richiedere diverse ore. Se l'app supera il controllo e viene pubblicata correttamente, non sono necessari ulteriori interventi. Se invece l'app non supera il controllo, la nuova versione dell'app non verrà pubblicata e riceverai una notifica via email.
Ulteriori dettagli
Le implementazioni di query
, update
e delete
in classi ContentProvider
esportate possono determinare una vulnerabilità SQL injection se trasmettono input non sottoposti a sanitizzazione alle istruzioni SQL. Un'app dannosa può fornire un input creato per accedere a dati privati o compromettere contenuti di database. Puoi risolvere il problema nei seguenti modi:
Se una classe ContentProvider
interessata non deve essere esposta ad altre app:
- Puoi modificare il tag
<provider>
della classeContentProvider
in questione nel file manifest impostandoandroid:exported="false"
. In questo modo le altre app non potranno inviare intent alla classeContentProvider
interessata. -
Puoi anche impostare come
permission
l'attributoandroid:permission
conandroid:protectionLevel="signature"
per impedire alle app create da altri sviluppatori di inviare intent alla classeContentProvider
interessata.
Se una classe ContentProvider
interessata deve essere esposta ad altre app:
- Puoi impedire SQL injection in
SQLiteDatabase.query
utilizzando la modalità strict con un valore projection map. Questa modalità protegge da clausole di selezione dannose, mentre la mappa proiezione protegge da clausole di proiezione dannose. Devi utilizzare entrambe le funzionalità per garantire la sicurezza delle query. - Puoi impedire SQL injection in
SQLiteDatabase.update
eSQLiteDatabase.delete
ricorrendo a una clausola di selezione che utilizza"?"
come parametro sostituibile e un array separato di argomenti di selezione. La clausola di selezione non deve essere creata da input non attendibili.
Siamo qui per aiutarti
Puoi pubblicare eventuali domande tecniche relative alla vulnerabilità su Stack Overflow con il tag "android-security". Per chiarimenti sui passaggi da seguire per risolvere il problema, puoi contattare il nostro team di assistenza per gli sviluppatori.