Estas informações são destinadas a desenvolvedores de apps com a vulnerabilidade de injeção de SQL.
O que está acontecendo
Um ou mais dos seus apps contêm uma vulnerabilidade de injeção de SQL que precisa ser corrigida. Consulte o aviso no Play Console. Após os prazos exibidos no Play Console, todos os apps com vulnerabilidades de segurança não corrigidas poderão ser removidos do Google Play.
Ação necessária
- Faça login no Play Console e acesse a seção "Alertas" para ver os apps afetados e os prazos para resolver os problemas.
- Atualize esses apps e corrija a vulnerabilidade.
- Envie as versões atualizadas dos apps afetados.
Após o reenvio, seu app será revisado novamente. Esse processo pode levar várias horas. Se o app for aprovado na revisão e publicado, nenhuma outra ação será necessária. Se ele for reprovado, a nova versão não será publicada, e você receberá uma notificação por e-mail.
Detalhes adicionais
As implementações de query
, update
e delete
em ContentProviders
exportados podem estar vulneráveis à injeção de SQL caso passem entradas não limpas para as instruções SQL. Isso permite que um app malicioso forneça uma entrada manipulada para acessar dados particulares ou conteúdos de banco de dados corrompidos. Você pode corrigir esse problema das seguintes maneiras:
Se não for preciso expor um ContentProvider
afetado a outros apps:
- você poderá modificar a tag
<provider>
doContentProvider
afetado no manifesto para definirandroid:exported="false"
. Isso impede que outros apps enviem intents a esseContentProvider
; -
você também poderá configurar o atributo
android:permission
como umapermission
comandroid:protectionLevel="signature"
para evitar que apps criados por outros desenvolvedores enviem intents aoContentProvider
afetado.
Se for preciso expor um ContentProvider
afetado a outros apps:
- você poderá impedir a injeção de SQL em
SQLiteDatabase.query
usando o modo estrito com um mapa de projeção. O modo estrito protege contra cláusulas de seleção maliciosas, enquanto o mapa de projeção impede cláusulas de projeção indevidas. Use ambos os recursos para garantir que as consultas sejam seguras; - você poderá impedir a injeção de SQL em
SQLiteDatabase.update
eSQLiteDatabase.delete
usando uma cláusula de seleção com"?"
como parâmetro substituível e uma matriz separada de argumentos de seleção. Ao criar a cláusula de seleção, use somente entradas que sejam confiáveis.
Estamos aqui para ajudar
Se você tiver dúvidas técnicas sobre a vulnerabilidade, escreva uma postagem no Stack Overflow e use a tag "android-security". Caso precise de mais informações sobre as etapas necessárias para resolver esse problema, entre em contato com nossa equipe de suporte ao desenvolvedor.