The Android Developer Challenge is back! Submit your idea before December 2.

Praktik Terbaik Keamanan

Saat mendesain implementasi Layanan Penagihan Google Play, pastikan untuk mengikuti praktik terbaik keamanan yang dibahas dalam dokumen ini. Panduan ini direkomendasikan bagi siapa saja yang menggunakan Layanan Penagihan Google Play.

Memvalidasi detail pembelian

Sangatlah disarankan untuk memvalidasi detail pembelian di server yang tepercaya. Namun, jika tidak dapat menggunakan server, Anda masih dapat memvalidasi detail ini melalui aplikasi Anda pada perangkat.

Melakukan validasi di server

Dengan mengimplementasikan logika verifikasi tanda tangan di server, Anda membuat penyerang sulit merekayasa balik file APK Anda. Langkah ini menjaga integritas tanda tangan yang diperiksa logika Anda.

Untuk memvalidasi detail pembelian pada server tepercaya, selesaikan langkah-langkah berikut:

  1. Pastikan handshake perangkat-server aman.
  2. Periksa orderId dan tanda tangan data yang ditampilkan, dan verifikasi bahwa orderId merupakan nilai unik yang belum pernah Anda proses sebelumnya.
  3. Verifikasi bahwa kunci aplikasi Anda telah menandatangani INAPP_PURCHASE_DATA yang Anda proses.
  4. Validasi respons pembelian menggunakan resource ProductPurchase (untuk produk dalam aplikasi) atau resource SubscriptionPurchase (untuk langganan) dari Google Play Developer API. Langkah ini sangat berguna karena penyerang tidak dapat membuat respons palsu terhadap permintaan pembelian Play Store Anda.

Melindungi konten yang tidak dikunci

Untuk mencegah pengguna berbahaya mendistribusikan ulang konten yang tidak dikunci, jangan paketkan konten tersebut ke dalam file APK Anda. Sebagai gantinya, lakukan salah satu hal berikut:

  • Gunakan layanan real-time untuk menayangkan konten, seperti content feed. Menayangkan konten melalui layanan real-time memungkinkan Anda untuk menyediakan konten yang terus diperbarui.
  • Gunakan server jarak jauh untuk menayangkan konten.

Saat menayangkan konten dari server jarak jauh atau layanan real-time, Anda dapat menyimpan konten yang tidak dikunci di memori atau kartu SD perangkat. Jika Anda menyimpan konten di kartu SD, pastikan untuk mengenkripsi konten tersebut dan menggunakan kunci enkripsi khusus perangkat.

Mengambil tindakan terhadap pelanggaran hak cipta dan merk dagang

Jika Anda menggunakan server jarak jauh untuk menayangkan atau mengelola konten, perintahkan aplikasi untuk memverifikasi status pembelian konten yang tidak dikunci setiap kali pengguna mengakses konten. Hal ini memungkinkan Anda untuk mencabut penggunaan jika diperlukan dan meminimalkan pembajakan.

Jika Anda mendapati konten Anda didistribusikan ulang di Google Play, ambil tindakan cepat dan tegas. Untuk detail selengkapnya, lihat halaman Pertanyaan Umum Terkait Hak Cipta di Pusat Bantuan Hak Cipta.