Práticas recomendadas de segurança

Ao projetar sua implementação de Faturamento em apps, siga as práticas recomendadas de segurança abordadas neste documento. Essas diretrizes são recomendadas para quem está usando o serviço de Faturamento em apps do Google Play.

Validar detalhes da compra

É altamente recomendável validar os detalhes da compra em um servidor confiável. No entanto, se não for possível usar um servidor, você ainda poderá validar esses detalhes no seu aplicativo em um dispositivo.

Validar em um servidor

Ao implementar a lógica de verificação de assinatura em um servidor, você dificulta a engenharia reversa do seu arquivo APK por parte de invasores. Isso preserva a integridade das assinaturas que sua lógica verifica.

Para validar os detalhes da compra em um servidor confiável, realize as etapas a seguir:

  1. Certifique-se de que o handshake entre dispositivo e servidor seja seguro.
  2. Verifique a assinatura de dados retornada e o orderId e confira se o orderId é um valor exclusivo que você não processou anteriormente.
  3. Verifique se a chave do seu aplicativo assinou o INAPP_PURCHASE_DATA processado.
  4. Valide as respostas de compra usando o recurso ProductPurchase (para produtos no app) ou o recurso SubscriptionPurchase (para assinaturas) da Google Play Developer API. Essa etapa é particularmente útil porque os invasores não podem criar respostas falsas às suas solicitações de compra da Play Store.

Proteger seu conteúdo desbloqueado

Para evitar que usuários mal-intencionados redistribuam seu conteúdo desbloqueado, não o empacote no arquivo APK. Em vez disso, escolha uma das opções a seguir:

  • Usar um serviço em tempo real para fornecer conteúdo, como um feed de conteúdo. Fornecer conteúdo por meio de um serviço em tempo real permite manter o conteúdo atualizado.
  • Usar um servidor remoto para fornecer o conteúdo.

Ao fornecer o conteúdo a partir de um servidor remoto ou um serviço em tempo real, é possível armazenar o conteúdo desbloqueado na memória ou no cartão SD do dispositivo. Ao armazenar conteúdo em um cartão SD, criptografe-o e use uma chave de criptografia específica do dispositivo.

Realizar ações contra violações de direitos autorais ou marcas registradas

Se você estiver usando um servidor remoto para fornecer ou gerenciar conteúdo, habilite seu aplicativo para verificar o estado de compra do conteúdo desbloqueado sempre que um usuário acessar o conteúdo. Isso permite revogar o uso quando necessário e minimizar a pirataria.

Se você vir seu conteúdo sendo redistribuído no Google Play, aja de forma rápida e decisiva. Para saber mais, consulte a página Perguntas frequentes sobre direitos autorais na Central de Ajuda de direitos autorais.