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

Uygulamanız popülerliği arttıkça, uygulamanızı kötüye kullanmak isteyebilecek kötü amaçlı kullanıcıların istenmeyen ilgisini de çekebilir. Bu konuda, faturalandırma entegrasyonunuza yönelik 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

Uygulamanızın tasarımının 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 fazla veri ve mantık bulunursa, bu cihazda değişiklik yapılması veya müdahale edilmesi o kadar savunmasız 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 hata ayıklama, düzeltme ve güncelleme işlemleri ön uç yerine arka uçta daha kolay olabilir.

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

Arka uçta işlenmesi gereken özel bir hassas veri ve mantık durumu, 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. Bu nedenle, 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şlemi için 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 yasal ise ve geçmişte kullanılmadıysa uygulama içi öğe veya abonelikten yararlanma hakkını güvenli bir şekilde verebilirsiniz.
  5. Aboneliklerde linkedPurchaseToken, Purchases.subscriptionsv2:get içinde ayarlandığında linkedPurchaseToken öğesini de veritabanınızdan kaldırıp linkedPurchaseToken için verilen yararlanma hakkını iptal ederek birden fazla kullanıcının aynı satın alma işlemine sahip olmamasını sağlayabilirsiniz.
  6. Yararlanma hakkı yalnızca satın alma durumu PURCHASED olduğunda vermeli ve PENDING satın alma işlemini doğru bir şekilde yaptığınızdan emin olmalısınız. CANCELED satın alma işleminde 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 bir tüketilebilir ü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 ya da 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 satın alma işlemini uygulamanız aracılığıyla onaylayabilir veya kullanabilirsiniz, ancak sunucu tarafı API'leri zayıf ağ bağlantısı ve kötü amaçlı etkinlik gibi sorunlara karşı ek koruma sağlar. Ö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ı olmadığında 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 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 ilettiğ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 etme ve işleme

İptal edilen satın alma işlemleri; iptal edilen, iptal edilen veya geri ödeme yapılan satın alma işlemleridir. İptal edilen satın alma işlemiyle ilgili olarak daha önce kullanıcıya uygulama içi öğeler veya başka içerikler verilmişse satın alma işleminin iptal edilme nedenini ve geri alabileceğiniz ilişkili içerikleri öğrenmek için Voided Purchases API'sini kullanabilirsiniz.

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

  • Satın alma işlemi kullanıcı, geliştirici veya Google tarafından iptal edildiğinde. Abonelikler söz konusu olduğunda 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 göre ve önceki kullanıcı davranış verilerini göz önünde bulundurarak bir dizi işlem yapmaya karar verebilirsiniz. Aşağıdakilerden birini veya daha fazlasını uygulamanızı öneririz:

  • Geri alma işlemi gerçekleştirin: Bir satın alma işlemi iptal edildiğinde, kullanılmamış ürünleri hiç satın alınmamış gibi geri alabilirsiniz. Örneğin, oyun içi para birimi satın alma işlemi iptal edilirse 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 az sert önlemler alın. Tekrarlanan ihlaller 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şlemleri iptal edilmiş olan kullanıcılar için satın alma işlemlerini devre dışı bırakarak satın alma işlemlerinin neden geçersiz kılındığını daha ayrıntılı bir şekilde araştırabilirsiniz.
  • Uygulamanıza erişime geçici veya kalıcı olarak izin verme: Tekrarlanan kötü amaçlı etkinliklerin olduğu ekstrem durumlarda, uygulamanıza erişim iznini geçici veya kalıcı olarak vermemeyi düşünebilirsiniz.
  • Voided Purchases API'sine sık sık çağrı yapma: Bir veya daha fazla iptal edilen satın alma işlemi tespit ettiğinizde, kullanıcı tüketmeden önce satın alma işlemlerini geri çekmek için Voided Purchases API'ye daha sık çağrı yapmayı düşünebilirsiniz. Voided Purchases API'si kotaları hakkında daha fazla bilgiyi Voided Purchases API belgelerinde bulabilirsiniz.

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

Bazı sahtekarlık türleri, etkinliklerini gizlemek için birden fazla Google ve uygulama içi hesap oluşturan kötü amaçlı kullanıcılarla ilgilidir.

Google'ın Google hesaplarını uygulama içi hesaplarla eşleştirmesine yardımcı olmak için BillingFlowParams için oluşturucudaki setObfuscatedAccountId ve setObfuscatedProfileId yöntemlerini kullanın.

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

Ticari marka ve telif hakkı ihlaline karşı 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. Böylece gerektiğinde kullanımı iptal edebilir ve korsanlığı en aza indirebilirsiniz. İçeriğinizin Google Play'de yeniden dağıtıldığını görürseniz hızlı ve kararlı bir şekilde hareket ettiğinizden emin olun. Ayrıntılı bilgi için Telif Hakkı Yardım Merkezi'ndeki Telif Hakkıyla İlgili Sık Sorulan Sorular sayfasına bakın.