Register now for Android Dev Summit 2019!

Recomendaciones de seguridad

A medida que diseñes tu implementación de la Facturación Google Play, asegúrate de seguir las prácticas recomendadas de seguridad que se incluyen en este documento. Se sugiere que cualquier usuario de la Facturación Google Play cumpla con estos lineamientos.

Cómo validar detalles de compras

Se recomienda encarecidamente validar los detalles de compras en un servidor de confianza. Sin embargo, si no usas un servidor, puedes validar esta información dentro de tu app en un dispositivo.

Cómo validar detalles en un servidor

Cuando implementas tu lógica de verificación de firma en un servidor, haces que a los atacantes les resulte difícil aplicar ingeniería inversa en tu archivo APK. De esta manera, se preserva la integridad de las firmas que verifica tu lógica.

Para validar detalles de compras en un servidor de confianza, haz lo siguiente:

  1. Asegúrate de que el protocolo de enlace entre el dispositivo y el servidor sea seguro.
  2. Verifica el objeto orderId y la firma de datos que se muestra, y comprueba que orderId sea un valor único que no hayas procesado anteriormente.
  3. Verifica que la clave de tu app haya firmado el elemento INAPP_PURCHASE_DATA que procesas.
  4. Valida las respuestas de compra mediante los recursos ProductPurchase (para productos integrados en la aplicación) o SubscriptionPurchase (para suscripciones) desde la API de Google Play Developer. Este paso resulta particularmente útil porque los atacantes no pueden crear respuestas ficticias ante tu solicitud de compra de Play Store.

Cómo proteger tu contenido desbloqueado

Para evitar que usuarios malintencionados redistribuyan tu contenido desbloqueado, no lo integres a tu archivo APK. Como alternativa, toma una de las siguientes medidas:

  • Usa un servicio en tiempo real para entregar tu contenido, como el canal de contenido. Entrega contenido mediante un servicio en tiempo real que te permita mantenerlo actualizado.
  • Usa un servidor remoto para entregar tu contenido.

Cuando entregas contenido desde un servidor remoto o en tiempo real, puedes almacenar el contenido desbloqueado en la memoria o la tarjeta SD del dispositivo. Si almacenas contenido en una tarjeta SD, asegúrate de encriptarlo y de usar una clave específica del dispositivo.

Cómo tomar medidas contra incumplimientos de marca y derechos de autor

Si usas un servidor remoto para entregar o administrar contenido, haz que tu app verifique el estado de compra del contenido desbloqueado cada vez que un usuario acceda a él. Esto te permite revocar el uso cuando sea necesario y minimizar la piratería.

Si ves que se redistribuye tu contenido en Google Play, toma medidas rápidamente y con determinación. Para obtener más información al respecto, consulta la página de Preguntas frecuentes sobre derechos de autor en el Centro de ayuda correspondiente.