Esta información está destinada a los desarrolladores que tengan aplicaciones con la vulnerabilidad de inyección de SQL.
¿Qué va a suceder?
Una o varias de tus aplicaciones contienen una vulnerabilidad de inyección de SQL que debes solucionar. Consulta el aviso en Play Console. Una vez que finalice el plazo indicado en Play Console, es posible que las aplicaciones que contengan vulnerabilidades de seguridad sin corregir se retiren de Google Play.
Acción necesaria
- Inicia sesión en Play Console y ve a la sección Alertas para consultar qué aplicaciones están afectadas y las fechas límite para resolver estos problemas.
- Actualiza las aplicaciones afectadas y corrige la vulnerabilidad.
- Envía las versiones actualizadas de las aplicaciones afectadas.
Cuando vuelvas a enviar tus aplicaciones, se revisarán de nuevo. Este proceso puede tardar varias horas en completarse. Si una aplicación supera el proceso de revisión y se publica, no tendrás que hacer nada más. De lo contrario, la nueva versión de la aplicación no se publicará y recibirás una notificación por correo electrónico.
Información adicional
Las implementaciones de query
, update
y delete
en las clases ContentProvider
exportadas pueden ser vulnerables a la inyección de SQL si pasan entradas no seguras a declaraciones SQL. Una aplicación maliciosa puede proporcionar una entrada diseñada para acceder a datos privados o dañar los contenidos de la base de datos. Puedes solucionar el problema de las siguientes formas:
Si una clase ContentProvider
afectada no necesita estar expuesta a otras aplicaciones:
- Puedes modificar la etiqueta
<provider>
de la claseContentProvider
afectada en tu archivo de manifiesto para definir el valorandroid:exported="false"
. De esta forma, se impide que otras aplicaciones envíen intents a la claseContentProvider
afectada. -
También puedes definir el atributo
android:permission
como un valorpermission
conandroid:protectionLevel="signature"
para impedir que las aplicaciones creadas por otros desarrolladores envíen intents a la claseContentProvider
afectada.
Si una clase ContentProvider
afectada necesita estar expuesta a otras aplicaciones:
- Utiliza el modo strict con un mapa de proyección en
SQLiteDatabase.query
. El modo estricto protege contra las cláusulas de selección maliciosas y el mapa de proyección protege contra las cláusulas de proyección maliciosas. Debes utilizar ambas funciones para garantizar la seguridad de tus consultas. - Utiliza una cláusula de selección que use
"?"
como parámetro sustituible y una matriz independiente de argumentos de selección para impedir la inyección de SQL enSQLiteDatabase.update
ySQLiteDatabase.delete
. La cláusula de selección no debe construirse a partir de entradas que no sean de confianza.
Queremos ayudarte
Si tienes alguna pregunta técnica sobre esta vulnerabilidad, puedes publicarla en Stack Overflow con la etiqueta "android-security". Ponte en contacto con nuestro equipo de asistencia para desarrolladores si necesitas más información para resolver este problema.