Estas informações destinam-se aos programadores com aplicações que contenham a vulnerabilidade de injeção SQL.
O que está a acontecer
Uma ou mais das suas aplicações contêm uma vulnerabilidade de injeção SQL que tem de ser corrigida. Consulte o aviso na Play Console. Após os prazos apresentados na Play Console, as aplicações que contenham vulnerabilidades de segurança não corrigidas poderão ser removidas do Google Play.
Ação necessária
- Inicie sessão na Play Console e navegue até à secção Alertas para ver quais as aplicações afetadas e os prazos para resolver estes problemas.
- Atualize as aplicações afetadas e corrija a vulnerabilidade.
- Envie as versões atualizadas das aplicações afetadas.
Depois de voltar a enviar, a sua aplicação será revista novamente. Este processo pode demorar várias horas. Se a aplicação obtiver a aprovação na revisão e for publicada com êxito, não será necessária qualquer ação adicional. Se a aplicação falhar na revisão, a nova versão da aplicação não será publicada e receberá uma notificação por email.
Detalhes adicionais
As implementações de query
, update
e delete
em ContentProviders
exportados podem ser vulneráveis à injeção SQL se transmitirem entradas perigosas a declarações SQL. Uma aplicação maliciosa pode fornecer uma entrada concebida para aceder a dados privados ou conteúdos corruptos em bases de dados. Pode corrigir este problema das seguintes formas:
Se um ContentProvider
afetado não tiver de estar exposto a outras aplicações:
- Pode modificar a etiqueta
<provider>
doContentProvider
afetado no seu manifesto para definirandroid:exported="false"
. Isto impede que outras aplicações enviem intenções para oContentProvider
afetado. -
Também pode definir o atributo
android:permission
como umaautorização
comandroid:protectionLevel="signature"
para impedir que as aplicações escritas por outros programadores enviem intenções para oContentProvider
afetado.
Se um ContentProvider
afetado tiver de estar exposto a outras aplicações:
- Pode impedir a injeção SQL para
SQLiteDatabase.query
através do modo rigoroso com um mapa de projeção. O modo rigoroso protege contra cláusulas de seleção maliciosas e o mapa de projeção protege contra cláusulas de projeção maliciosas. Tem de utilizar ambas as funcionalidades para garantir que as consultas estão seguras. - Pode impedir a injeção SQL para
SQLiteDatabase.update
eSQLiteDatabase.delete
através de uma cláusula de seleção que utilize"?"
como um parâmetro substituível e uma matriz separada de argumentos de seleção. A sua cláusula de seleção não deve ser criada a partir de entradas não fidedignas.
Estamos aqui para ajudar
Se tiver perguntas técnicas acerca da vulnerabilidade, pode publicar uma mensagem no Stack Overflow e utilizar a etiqueta "android-security". Para obter um esclarecimento sobre os passos que tem de efetuar para resolver este problema, pode contactar a nossa equipa de apoio técnico a programadores.