Sahtekarlık ve kötüye kullanımla mücadele

Uygulamanız popülerlik kazandıkça, uygulamanızı kötüye kullanmak isteyebilecek kötü amaçlı kullanıcıların istenmeyen şekilde ilgisini de çekebilir. Bu konuda, faturalandırma entegrasyonunuza yapılan bu saldırıları önlemek ve uygulamanızdaki kötüye kullanımın etkisini azaltmak için kullanmanız gereken öneriler açıklanmaktadır.

Hassas mantığı arka ucunuza taşıyın

Uygulama tasarımınız izin verdiği ölçüde, hassas verileri ve mantığı kontrol ettiğiniz bir arka uç sunucusuna taşıyın. Bir ön uç cihazda ne kadar çok veri ve mantık varsa değiştirilme veya üzerinde oynanmaya o kadar açık olur.

Örneğin, online bir satranç oyunu, ön ucun her zaman yasal hamleler gönderdiğine güvenmek yerine, arka uçtaki tüm hareketleri doğrulamalıdır.

Ayrıca, güvenlik açıkları veya güvenlik sorunları bulursanız sistem tasarımınıza bağlı olarak güncellemeleri ön uç yerine arka uçta ayıklamak, düzeltmek ve kullanıma sunmak daha kolay olabilir.

Yararlanma hakkı vermeden önce satın alma işlemlerini doğrulayın

Hassas veri ve mantığın arka uçta işlenmesi gereken özel bir durum, satın alma doğrulaması ve onayıdır. Bir kullanıcı satın alma işlemi yaptıktan sonra şunları yapmanız gerekir:

  1. İlgili purchaseToken öğesini arka ucunuza gönderin. Yani, tüm satın alma işlemleri için tüm purchaseToken değerlerinin kaydını tutmanız gerekir.
  2. Mevcut satın alma işleminin purchaseToken değerinin önceki purchaseToken değerleriyle eşleşmediğini doğrulayın. purchaseToken genel olarak benzersiz olduğundan bu değeri veritabanınızda birincil anahtar olarak güvenle kullanabilirsiniz.
  3. Satın alma işleminin meşru olduğunu Google'dan doğrulamak için Google Play Developer API'deki Purchases.products:get veya Purchases.subscriptionsv2:get uç noktalarını kullanın.
  4. Satın alma işlemi yasalsa ve geçmişte kullanılmamışsa uygulama içi öğe veya abonelikten yararlanma hakkınızı güvenli bir şekilde verebilirsiniz.
  5. Aboneliklerde linkedPurchaseToken, Purchases.subscriptionsv2:get içinde ayarlandığında linkedPurchaseToken öğesini de veritabanınızdan kaldırmanız ve linkedPurchaseToken öğesine verilen yararlanma hakkını iptal etmeniz gerekir. Böylece birden fazla kullanıcının aynı satın alma işlemi için kullanılamaması gerekir.
  6. Yararlanma hakkı yalnızca satın alma durumu PURCHASED olduğunda vermelisiniz ve PENDING satın alma işlemini doğru bir şekilde gerçekleştirdiğinizden emin olun. CANCELED satın alma işlemlerinde ani bir artış varsa satın alma işlemi hâlâ PENDING durumundayken yararlanma hakkı veriyor olabilirsiniz. Daha fazla bilgiyi Bekleyen işlemleri ele alma bölümünde bulabilirsiniz.
  7. Yararlanma hakkı verdikten sonra, tüketilebilir bir ürünü kullanmak ve onaylamak isterseniz güvenli arka uç sunucunuzda Purchases.products:consume Play Developer API'yi kullanın. Tüketilebilir olmayan bir ürünü veya aboneliği onaylamak için güvenli arka uç sunucunuzda ilgili Play Developer API uç noktasını Purchases.products:acknowledge veya Purchases.subscriptions:acknowledge çağırın. Kullanıcının satın alma yetkisi verildiğini Google Play'e bildirdiği için onay gereklidir. Yararlanma hakkı verdikten hemen sonra satın alma işlemini onaylamanız gerekir.

    İstemci tarafında yapılan satın alma işlemini uygulamanız aracılığıyla onaylayabilir veya kullanabilirsiniz, ancak sunucu tarafı API'lerin zayıf ağ bağlantısı ve kötü amaçlı etkinlik gibi sorunlara karşı ek koruma sağladığını unutmayın. Örneğin, bir kullanıcının uygulamanızdan bir öğe satın aldığını ancak satın alma işlemi doğrulanırken ağ bağlantısını kaybettiğini düşünün. Sunucu onayı olmadan, onay sürecini tamamlamak için uygulama üzerinden tekrar giriş yapmaları gerekebilir. Aksi takdirde, kullanıcı üç gün içinde tekrar giriş yapmazsa satın alma onayı olmadığı için satın alma işlemi otomatik olarak geri ödenir. Sunucu onayı, Google Play sunucuya satın alma işleminin geçerli olduğunu bildirir bildirmez onay göndererek bu senaryoyu önler.

    Satın alma onayı ve tüketim hakkında daha fazla bilgi için Satın alma işlemlerini işleme bölümüne bakın.

Kilidi açılmış içeriklerinizi koruma

Kötü amaçlı kullanıcıların, kilidi açılmış içeriğinizi yeniden dağıtmasını önlemek için bu içeriği APK dosyanızda gruplandırmayın. Bunun yerine, aşağıdakilerden birini yapın:

  • İçeriğinizi yayınlamak için içerik feed'i gibi gerçek zamanlı bir hizmet kullanın. İçeriği gerçek zamanlı bir hizmet aracılığıyla sunmak, içeriğinizi güncel tutmanıza da olanak tanır.
  • İçeriğinizi göndermek için uzak bir sunucu kullanın.

Uzak bir sunucudan veya gerçek zamanlı bir hizmetten içerik gönderdiğinizde, kilidi açılmış içeriği cihaz belleğinde veya cihazın SD kartında depolayabilirsiniz. SD kartta içerik depoluyorsanız içeriği şifrelediğinizden ve cihaza özel bir şifreleme anahtarı kullandığınızdan emin olun.

Geçersiz satın alma işlemlerini tespit edip işleme

İptal edilen satın alma işlemleri; iptal edilen, iptal edilen veya ters ibraz uygulanan satın alma işlemleridir. Geçersiz satın alma işleminde bir kullanıcıya daha önce uygulama içi öğeler veya başka içerikler verilmişse satın alma işleminin iptal edilme nedenini öğrenmek için Voided Purchases API'yi ve geri tahsil edebileceğiniz ilişkili içerikleri öğrenebilirsiniz.

Uygulama içi öğe ve abonelik satın alma işlemleri, aşağıdakiler gibi çeşitli nedenlerle iptal edilebilir:

  • Kullanıcı, geliştirici veya Google bir satın alma işlemini iptal ettiğinde. Abonelikler için bunun aboneliğin kendisini iptal etmek yerine aboneliğin satın alınmasını iptal etmek anlamına geldiğini unutmayın.
  • Satın alma işleminin ödemesi geri alınır.
  • Uygulama geliştirici, bir kullanıcı siparişini iptal eder veya geri ödeme yapar ve konsoldaki "iptal et" seçeneğini kontrol eder.

Satın alma işleminin iptal edilme nedenine ve önceki kullanıcı davranış verilerini hesaba katarak nasıl bir işlem yapacağınızı seçebilirsiniz. Aşağıdakilerden birini veya daha fazlasını uygulamanızı öneririz:

  • Geri çekme uygulama: Bir satın alma işlemi iptal edildiğinde, kullanılmayan öğeleri hiç satın alınmamış gibi geri alabilirsiniz. Örneğin, bir oyun içi para birimi satın alma işlemi geçersiz kılınırsa kullanıcıya önceden verilmiş olan para birimini geri alabilirsiniz. Kullanıcının para birimini zaten harcamış olması durumunda, para birimi bakiyesini negatif olarak ayarlamayı ve para birimi bakiyesi pozitif olana kadar uygulama etkinliği ile gelecekteki satın alma işlemlerini sınırlamayı düşünün.
  • Birden fazla ihtar uygulama: İlk kez ihlalde bulunanlar için uygulama içi uyarılar görüntülemek gibi daha basit önlemler alın. İhlali tekrarlayanlar için daha ciddi önlemler alın.
  • Satın alma işlemlerini geçici olarak devre dışı bırakın: Birden fazla ihtar uygulamasına benzer şekilde, satın alma işlemlerinin neden geçersiz olduğunu daha ayrıntılı bir şekilde araştırana kadar geçersiz satın alma işlemi gerçekleştiren kullanıcılar için satın alma işlemlerini devre dışı bırakmayı düşünün.
  • Uygulamanıza erişime geçici veya kalıcı olarak izin verme: Tekrarlanan kötü amaçlı etkinliklerin olduğu olağanüstü durumlarda, uygulamanıza erişim iznini geçici veya kalıcı olarak engellemeyi düşünün.
  • Vided Purchases API'sine sık sık çağrı yapma: Bir veya daha fazla geçersiz satın alma işlemi tespit ettiğinizde, kullanıcı tüketmeden önce satın alma işlemlerini geri çekmek için Voided Purchase API'sine daha sık çağrı yapmayı düşünebilirsiniz. Voided Purchases API kotaları hakkında daha fazla bilgiyi Voided Purchases API belgelerinde bulabilirsiniz.

Google'ın sahtekarlığı gerçekleşmeden önce tespit etmesine yardımcı olun

Sahtekarlık türlerinin bazıları, etkinliklerini gizlemek için birden fazla Google hesabı ve uygulama içi hesap oluşturan kötü amaçlı kullanıcılarla ilgilidir.

BillingFlowParams için oluşturucuda setObfuscatedAccountId ve setObfuscatedProfileId yöntemlerini kullanarak Google'ın, Google hesaplarını uygulama içi hesaplarla eşleştirmesine yardımcı olun.

Google, bu verileri şüpheli davranışları tespit etmek ve bazı türdeki sahte işlemleri tamamlanmadan önce engellemek için kullanır.

Ticari marka ve telif hakkı ihlali konusunda işlem yapma

İçerik yayınlamak veya yönetmek için uzak bir sunucu kullanıyorsanız bir kullanıcı içeriğe her eriştiğinde uygulamanızın kilidi açılmış içeriğin satın alma durumunu doğrulamasını sağlayın. Bu, gerektiğinde kullanımı iptal etmenize ve korsanlığı en aza indirmenize olanak tanır. İçeriğinizin Google Play'de yeniden dağıtıldığını görürseniz hızlı ve kararlı bir şekilde hareket ettiğinizden emin olun. Daha ayrıntılı bilgi için Telif Hakkı Yardım Merkezi'ndeki Telif Hakkıyla İlgili Sık Sorulan Sorular sayfasına bakın.